Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> прога крашится в релизе 
V
    Опции темы
boostcoder
Дата 20.11.2010, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 16
Всего: 110



всем привет.
есть программа, которая в дебаге превосходно работает. писал сам. пока писал, в релизе не проверял. вот, решил. и *опа.
все что выводит в консоль:
Цитата

*** buffer overflow detected ***
======= Backtrace: =========
/lib/libc.so.6(__fortify_fail+0x50)[0xb75eb990]
/lib/libc.so.6(+0xe488a)[0xb75ea88a]
/lib/libc.so.6(+0xe3fc8)[0xb75e9fc8]
/lib/libc.so.6(_IO_default_xsputn+0x9e)[0xb7570a2e]
/lib/libc.so.6(_IO_vfprintf+0xe34)[0xb7544044]
/lib/libc.so.6(__vsprintf_chk+0xad)[0xb75ea07d]
/lib/libc.so.6(__sprintf_chk+0x2d)[0xb75e9fbd]
client[0x8055179]
client[0x8056c8c]
/lib/libc.so.6(__libc_start_main+0xe7)[0xb751cce7]
client[0x8054261]
======= Memory map: ========
08048000-080bf000 r-xp 00000000 08:07 1312850    client
080bf000-080c0000 r--p 00076000 08:07 1312850    client
080c0000-080c1000 rw-p 00077000 08:07 1312850    client
086a1000-086c2000 rw-p 00000000 00:00 0          [heap]
b32fb000-b32fc000 ---p 00000000 00:00 0 
b32fc000-b3afc000 rw-p 00000000 00:00 0 
b3afc000-b3afd000 ---p 00000000 00:00 0 
b3afd000-b42fd000 rw-p 00000000 00:00 0 
b42fd000-b42fe000 ---p 00000000 00:00 0 
b42fe000-b4afe000 rw-p 00000000 00:00 0 
b4afe000-b4aff000 ---p 00000000 00:00 0 
b4aff000-b52ff000 rw-p 00000000 00:00 0 
b52ff000-b5300000 ---p 00000000 00:00 0 
b5300000-b5b00000 rw-p 00000000 00:00 0 
b5b00000-b5b21000 rw-p 00000000 00:00 0 
b5b21000-b5c00000 ---p 00000000 00:00 0 
b5ce3000-b5ce4000 ---p 00000000 00:00 0 
b5ce4000-b64e4000 rw-p 00000000 00:00 0 
b64e4000-b64e5000 ---p 00000000 00:00 0 
b64e5000-b6ce5000 rw-p 00000000 00:00 0 
b6ce5000-b6ce6000 ---p 00000000 00:00 0 
b6ce6000-b74ea000 rw-p 00000000 00:00 0 
b74ea000-b74fa000 r-xp 00000000 08:05 2359340    /lib/libbz2.so.1.0.4
b74fa000-b74fb000 r--p 0000f000 08:05 2359340    /lib/libbz2.so.1.0.4
b74fb000-b74fc000 rw-p 00010000 08:05 2359340    /lib/libbz2.so.1.0.4
b74fc000-b74fd000 rw-p 00000000 00:00 0 
b74fd000-b7504000 r-xp 00000000 08:05 2360957    /lib/librt-2.12.1.so
b7504000-b7505000 r--p 00006000 08:05 2360957    /lib/librt-2.12.1.so
b7505000-b7506000 rw-p 00007000 08:05 2360957    /lib/librt-2.12.1.so
b7506000-b765d000 r-xp 00000000 08:05 2360941    /lib/libc-2.12.1.so
b765d000-b765e000 ---p 00157000 08:05 2360941    /lib/libc-2.12.1.so
b765e000-b7660000 r--p 00157000 08:05 2360941    /lib/libc-2.12.1.so
b7660000-b7661000 rw-p 00159000 08:05 2360941    /lib/libc-2.12.1.so
b7661000-b7664000 rw-p 00000000 00:00 0 
b7664000-b767e000 r-xp 00000000 08:05 2359376    /lib/libgcc_s.so.1
b767e000-b767f000 r--p 00019000 08:05 2359376    /lib/libgcc_s.so.1
b767f000-b7680000 rw-p 0001a000 08:05 2359376    /lib/libgcc_s.so.1
b7680000-b76a4000 r-xp 00000000 08:05 2360945    /lib/libm-2.12.1.so
b76a4000-b76a5000 r--p 00023000 08:05 2360945    /lib/libm-2.12.1.so
b76a5000-b76a6000 rw-p 00024000 08:05 2360945    /lib/libm-2.12.1.so
b76a6000-b7785000 r-xp 00000000 08:05 1315208    /usr/lib/libstdc++.so.6.0.14
b7785000-b7789000 r--p 000de000 08:05 1315208    /usr/lib/libstdc++.so.6.0.14
b7789000-b778a000 rw-p 000e2000 08:05 1315208    /usr/lib/libstdc++.so.6.0.14
b778a000-b7792000 rw-p 00000000 00:00 0 
b7792000-b77a7000 r-xp 00000000 08:05 2360955    /lib/libpthread-2.12.1.so
b77a7000-b77a8000 ---p 00015000 08:05 2360955    /lib/libpthread-2.12.1.so
b77a8000-b77a9000 r--p 00015000 08:05 2360955    /lib/libpthread-2.12.1.so
b77a9000-b77aa000 rw-p 00016000 08:05 2360955    /lib/libpthread-2.12.1.so
b77aa000-b77ac000 rw-p 00000000 00:00 0 
b77ac000-b77c3000 r-xp 00000000 08:05 1311261    /usr/lib/libboost_iostreams.so.1.45.0
b77c3000-b77c4000 r--p 00016000 08:05 1311261    /usr/lib/libboost_iostreams.so.1.45.0
b77c4000-b77c5000 rw-p 00017000 08:05 1311261    /usr/lib/libboost_iostreams.so.1.45.0
b77c5000-b77d8000 r-xp 00000000 08:05 2359492    /lib/libz.so.1.2.3.4
b77d8000-b77d9000 r--p 00012000 08:05 2359492    /lib/libz.so.1.2.3.4
b77d9000-b77da000 rw-p 00013000 08:05 2359492    /lib/libz.so.1.2.3.4
b77da000-b77eb000 r-xp 00000000 08:05 1318433    /usr/lib/libboost_date_time.so.1.45.0
b77eb000-b77ec000 r--p 00010000 08:05 1318433    /usr/lib/libboost_date_time.so.1.45.0
b77ec000-b77ed000 rw-p 00011000 08:05 1318433    /usr/lib/libboost_date_time.so.1.45.0
b77ed000-b7857000 r-xp 00000000 08:05 1318307    /usr/lib/libboost_serialization.so.1.45.0
b7857000-b7859000 r--p 0006a000 08:05 1318307    /usr/lib/libboost_serialization.so.1.45.0
b7859000-b785a000 rw-p 0006c000 08:05 1318307    /usr/lib/libboost_serialization.so.1.45.0
b785a000-b785b000 rw-p 00000000 00:00 0 
b785b000-b7872000 r-xp 00000000 08:05 1318382    /usr/lib/libboost_thread.so.1.45.0
b7872000-b7873000 ---p 00017000 08:05 1318382    /usr/lib/libboost_thread.so.1.45.0
b7873000-b7874000 r--p 00017000 08:05 1318382    /usr/lib/libboost_thread.so.1.45.0
b7874000-b7875000 rw-p 00018000 08:05 1318382    /usr/lib/libboost_thread.so.1.45.0
b7875000-b7877000 r-xp 00000000 08:05 1318708    /usr/lib/libboost_system.so.1.45.0
b7877000-b7878000 r--p 00002000 08:05 1318708    /usr/lib/libboost_system.so.1.45.0
b7878000-b7879000 rw-p 00003000 08:05 1318708    /usr/lib/libboost_system.so.1.45.0
b7890000-b7892000 rw-p 00000000 00:00 0 
b7892000-b7893000 r-xp 00000000 00:00 0          [vdso]
b7893000-b78af000 r-xp 00000000 08:05 2360938    /lib/ld-2.12.1.so
b78af000-b78b0000 r--p 0001b000 08:05 2360938    /lib/ld-2.12.1.so
b78b0000-b78b1000 rw-p 0001c000 08:05 2360938    /lib/ld-2.12.1.so
bfad8000-bfaf9000 rw-p 00000000 00:00 0          [stack]

по именам функций в стеке вызовов, видно что есть упоминание про семейство *print функций. это так? этому можно доверять? или это просто какой-то неоднозначный вывод со всем содержимым?
PM WWW   Вверх
boostcoder
Дата 20.11.2010, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 16
Всего: 110



все верно. происходило переполнение массива при использовании sprintf().
правильно все адекватные авторы С++ литераторы пишут, что небезопасно в С++ использовать функции из Си. да и сам не первый раз в этом убеждаюсь, и все равно на те же грабли smile 

всем спасибо.

PM WWW   Вверх
MAKCim
Дата 21.11.2010, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 84
Всего: 207



boostcoder, 
может просто используете неправильно?
функции С работают с куском памяти, какая разница чем она выделяется? главное чтобы размер был подходящий


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
boostcoder
Дата 21.11.2010, 23:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 16
Всего: 110



Цитата(MAKCim @  21.11.2010,  11:51 Найти цитируемый пост)
используете неправильно?

ну...раз размер буфера оказался меньше необходимого - значит неправильно smile 

Цитата(MAKCim @  21.11.2010,  11:51 Найти цитируемый пост)
функции С работают с куском памяти, какая разница чем она выделяется? главное чтобы размер был подходящий 

из Си я использую всего несколько функций, из-за лени smile 
Цитата

sprintf()
sscanf()
memcpy()


другое дело, если бы лень меня не замучила, я бы использовал boost.format. и никаких подобных проблем не возникло бы.
...ладно, лирика..
PM WWW   Вверх
MAKCim
Дата 22.11.2010, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 84
Всего: 207



boostcoder, 
лучше таки не лениться и юзать С++ style в C++ коде... smile


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.1379 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.