Осмысленный вывод Buffer overflow detected
Шаманыш 15 февраля, 2015 - 09:34
Народец, подскажи, что и куда нажать, чтобы вместо такого:
*** buffer overflow detected ***: vi - terminated vi: buffer overflow attack in function unknown - terminated
Получать что-то типа такого:
*** buffer overflow detected ***: /media/Elements/ANT/progs_HLP/STACK/debug_my_stack_noday_cv terminated ======= Backtrace: ========= /lib/libc.so.6(__fortify_fail+0x37)[0x7ffff75e7b87] /lib/libc.so.6[0x7ffff75e6b30] /lib/libc.so.6[0x7ffff75e5f99] /lib/libc.so.6(_IO_default_xsputn+0x98)[0x7ffff7564968] /lib/libc.so.6(_IO_vfprintf+0x3da2)[0x7ffff7538b42] /lib/libc.so.6(__vsprintf_chk+0x99)[0x7ffff75e6039] /lib/libc.so.6(__sprintf_chk+0x7f)[0x7ffff75e5f7f] /media/Elements/ANT/progs_HLP/STACK/debug_my_stack_noday_cv[0x40135f] /lib/libc.so.6(__libc_start_main+0xfd)[0x7ffff750eabd] /media/Elements/ANT/progs_HLP/STACK/debug_my_stack_noday_cv[0x400b19] ======= Memory map: ======== 00400000-00402000 r-xp 00000000 08:21 3131097 /media/Elements/ANT/progs_HLP/STACK/debug_my_stack_noday_cv 00601000-00602000 r--p 00001000 08:21 3131097 /media/Elements/ANT/progs_HLP/STACK/debug_my_stack_noday_cv 00602000-00603000 rw-p 00002000 08:21 3131097 /media/Elements/ANT/progs_HLP/STACK/debug_my_stack_noday_cv 00603000-6f4be000 rw-p 00000000 00:00 0 [heap] 7ffff70bd000-7ffff70d3000 r-xp 00000000 08:05 212175 /lib/libgcc_s.so.1 7ffff70d3000-7ffff72d2000 ---p 00016000 08:05 212175 /lib/libgcc_s.so.1 7ffff72d2000-7ffff72d3000 r--p 00015000 08:05 212175 /lib/libgcc_s.so.1 7ffff72d3000-7ffff72d4000 rw-p 00016000 08:05 212175 /lib/libgcc_s.so.1 7ffff72d4000-7ffff72eb000 r-xp 00000000 08:05 212577 /lib/libpthread-2.10.1.so 7ffff72eb000-7ffff74ea000 ---p 00017000 08:05 212577 /lib/libpthread-2.10.1.so 7ffff74ea000-7ffff74eb000 r--p 00016000 08:05 212577 /lib/libpthread-2.10.1.so 7ffff74eb000-7ffff74ec000 rw-p 00017000 08:05 212577 /lib/libpthread-2.10.1.so 7ffff74ec000-7ffff74f0000 rw-p 00000000 00:00 0 7ffff74f0000-7ffff7656000 r-xp 00000000 08:05 212485 /lib/libc-2.10.1.so 7ffff7656000-7ffff7856000 ---p 00166000 08:05 212485 /lib/libc-2.10.1.so 7ffff7856000-7ffff785a000 r--p 00166000 08:05 212485 /lib/libc-2.10.1.so 7ffff785a000-7ffff785b000 rw-p 0016a000 08:05 212485 /lib/libc-2.10.1.so 7ffff785b000-7ffff7860000 rw-p 00000000 00:00 0 7ffff7860000-7ffff78e2000 r-xp 00000000 08:05 212567 /lib/libm-2.10.1.so 7ffff78e2000-7ffff7ae2000 ---p 00082000 08:05 212567 /lib/libm-2.10.1.so 7ffff7ae2000-7ffff7ae3000 r--p 00082000 08:05 212567 /lib/libm-2.10.1.so 7ffff7ae3000-7ffff7ae4000 rw-p 00083000 08:05 212567 /lib/libm-2.10.1.so 7ffff7ae4000-7ffff7bd8000 r-xp 00000000 08:05 1209312 /usr/lib/libfftw3.so.3.2.3 7ffff7bd8000-7ffff7dd7000 ---p 000f4000 08:05 1209312 /usr/lib/libfftw3.so.3.2.3 7ffff7dd7000-7ffff7dde000 r--p 000f3000 08:05 1209312 /usr/lib/libfftw3.so.3.2.3 7ffff7dde000-7ffff7ddf000 rw-p 000fa000 08:05 1209312 /usr/lib/libfftw3.so.3.2.3 7ffff7ddf000-7ffff7dfe000 r-xp 00000000 08:05 212299 /lib/ld-2.10.1.so 7ffff7fe4000-7ffff7fe7000 rw-p 00000000 00:00 0 7ffff7ff6000-7ffff7ff8000 rw-p 00000000 00:00 0 7ffff7ff9000-7ffff7ffc000 rw-p 00000000 00:00 0 7ffff7ffc000-7ffff7ffd000 r-xp 00000000 00:00 0 [vdso] 7ffff7ffd000-7ffff7ffe000 r--p 0001e000 08:05 212299 /lib/ld-2.10.1.so 7ffff7ffe000-7ffff7fff000 rw-p 0001f000 08:05 212299 /lib/ld-2.10.1.so 7ffffffea000-7ffffffff000 rw-p 00000000 00:00 0 [stack] ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall] Program received signal SIGABRT, Aborted.
»
- Для комментирования войдите или зарегистрируйтесь
Если не ошибаюсь, то нужно
Если не ошибаюсь, то нужно glibc собрать с флагом debug.
Возможно еще какие-то пакеты потребуется пересобрать, поэтому лучше уж сразу emerge --update --newuse @world (можно еще пару параметров добавить для полноты зависимостей).
USE=debug к глибцам
USE=debug к глибцам заставляет слать ABRT вместо KILL, что уже хорошо, можно гдб натравить, или даже коредамп заставить сохранять. Но при срабатывании детекта, по-прежнему ни бектрейса, ни меммапа. :(
:)