imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 07.02.2006, 16:59     # 1
gvidon
Guest
 
Сообщения: n/a

scanf buffer overflow

Все говорят что функция scanf подверженна возможному переполнению стека или кучи. Есть и куча примеров которые наглядно показывают в чем и где проблема.
Все примеры относяся к scanf(%s, s). и нигде ничего не написано про scanf(%x).
Есть ли в функции scanf с параметром %x возможность переполнения стека? Не могу найти информацию вообще, может кто-то на форуме знает?

Спасибо
 
Старый 07.02.2006, 22:56     # 2
joker99
Full Member
 
Аватар для joker99
 
Регистрация: 19.07.2003
Адрес: Israel
Сообщения: 924

joker99 Популярный человек на этом форумеjoker99 Популярный человек на этом форумеjoker99 Популярный человек на этом форумеjoker99 Популярный человек на этом форумеjoker99 Популярный человек на этом форумеjoker99 Популярный человек на этом форумеjoker99 Популярный человек на этом форуме
Насколько я понимаю, переполнение буфера возможно только в том случае когда заранее его размер неизвестен(как в scanf(%s, s)). при использовании scanf(%x) размер ввода известен и переполения буфера поидеее не должно быть.
__________________
Столько дел, что и работой занятся некогда...
joker99 вне форума  
Старый 25.02.2006, 18:56     # 3
HUNTER_NAW
Guest
 
Сообщения: n/a

Возможно переполнение, например:
short int c;// 2 байта
scanf("%d",&c);
Читает число с клавы и записывает в слово(4 байта) по адресу с.
Но это может не сказатся плохо, при исользовании выравнивания по слову
 
Старый 25.02.2006, 23:49     # 4
Willow
Junior Member
 
Регистрация: 23.12.2003
Адрес: Киев
Сообщения: 118

Willow Реально крут(а)Willow Реально крут(а)Willow Реально крут(а)Willow Реально крут(а)
Предыдущий пример демонстрирует ошибку прогаммиста а не ошибку переполнения буфера. Предыдущий пример всегда будет приводить к ошибке (если конечно отключено выравнивание), а ошибки переполнения буфера при вводе корректных данных работают нормально , поэтому они значительно более неприятны.
Willow вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 09:52.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.