|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Valentin Nechayev 2:5020/400 28 Feb 2004 23:13:26 To : eugen@grosbein.pp.ru Subject : Re: Sendmail+qpopper -------------------------------------------------------------------------------- >>> Eugene Grosbein wrote: VN>>>> Ты показываешь пример, где гарантированно влезет потому, что данные VN>>>> постоянны. Hо зачем тебе тут вообще буфер и копирование? EG>>> Ты совершенно прав, в оригинале никакого буфера для strftime нет EG>>> и константа используется прямо. Hо иногда все же приходится константы EG>>> копировать. К примеру, из-за того, что инициализация буфера без EG>>> копирования EG>>> приводит в дальнейшем к SIGBUS. VN>> Бр-р-р... ничего не понял. Откуда SIGBUS??? EG> char strftime_d[50]="initializer"; EG> strftime_d[0]='1'; /* аналог raise(SIGBUS); */ Кончай курить эту траву - тебе кедровые опилки подсунули. Я, кажется, знаю, что ты имел в виду: char *x = "initializer"; x[0] = '1'; Вот так - да, действительно вылетит. Hо к этому: 1) кто так сделал - ССЗБ. 2) защита против таких ССЗБ - при нормальном уровне варнингов компилятор скажет "вы тут const char* преобразовываете к char*, нехорошо-с". P.S. Только вот что-то ни 2.95.4 ни 3.3.3 не захотели выдать варнинг. Плохо :( -netch- --- ifmail v.2.15dev5.3 * Origin: Dark side of coredump (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/7368fd5e738f.html, оценка из 5, голосов 10
|