|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Dmitry N. Fomin 2:5030/1480 13 Feb 2005 03:29:24 To : Victor Wagner Subject : Какой язык программирования выбрать? -------------------------------------------------------------------------------- Hello _Victor_. 10.02.2005 16:50:20, _Victor Wagner_ --> /Konstantin Tokar/: >>> Если сэр совсем не умеет обращаться на C со строками, то >>> это скорее его личный недостаток. Если ты думаешь, что в >>> этой программе будут какие-то большие операции с этими >>> строками, то это вряд ли. KT>> Hа С обращаться со строками никто не умеет. Читай списки KT>> рассылки по безопасности. VW> VW> И те, кто пишет в оные списки тоже. VW> VW> Hапример, potential vulnerability был сочтен в вот таком коде: VW> VW> unsigned short unicode_char; VW> char buffer[8]; VW> sprintf(buffer,"\x%X",unicode_char); (как тут уже сказали, бэкслэшей должно быть два) VW> Вопрос к знатокам работы со строками в C - каким условиям должны VW> удовлетворять компилятор и ОС, чтобы в данном коде произошло VW> переполнение буфера. Размер типа unsigned short больше двух байт, а char - один байт. Potential vulnerability появляется от нарушения принципа "никаких магических чисел", а не от самого факта работы со строками. Если бы в объявлении было написано char buffer[sizeof("\\x")+2*sizeof(unsigned short)]; переполнения бы не произошло при любых размерах. /Dmitry/ [team мышь слева] [team точки над "ё"] ... Знаешь ли ты, Victor, что "клёво" пишется через "ё"? --- PS. Также я считаю, что тоссер, глотающий символ 8Dh, нарушает FPD 2.1.5. * Origin: Быстрая бурая лисичка прыгает через ленивую собачку. (2:5030/1480) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/14700420ec081.html, оценка из 5, голосов 10
|