I have an exe crashing from a fortify fail, I get the following backtrace/mamory dump. How can I use it? (GCC, Redhat Linux)
2*** buffer overflow detected ***: /apps/suns/runtime/bin/mardb82 terminated
======= Backtrace: =========
/lib64/libc.so.6(__fortify_fail+0x37)[0x7faa7a1967a7]
/lib64/libc.so.6(+0x116922)[0x7faa7a194922]
/lib64/libc.so.6(+0x1158eb)[0x7faa7a1938eb]
/apps/suns/runtime/bin/mardb82[0x40853b]
/apps/suns/runtime/bin/mardb82[0x409fbc]
/apps/suns/runtime/bin/mardb82[0x40a7f0]
/lib64/libc.so.6(__libc_start_main+0xf5)[0x7faa7a0a0555]
/apps/suns/runtime/bin/mardb82[0x401d79]
======= Memory map: ========
00400000-00423000 r-xp 00000000 fd:00 101870038 /apps/suns/runtime/bin/mardb82
00622000-00623000 r--p 00022000 fd:00 101870038 /apps/suns/runtime/bin/mardb82
00623000-0062d000 rw-p 00023000 fd:00 101870038 /apps/suns/runtime/bin/mardb82
0062d000-006f6000 rw-p 00000
Backtrace represents a stack trace.
Backtrace is generally generated by
backtrace_symbols()from glibc https://github.com/lattera/glibc/blob/master/debug/backtracesyms.c .The current frame points into
/lib64/libc.so.6file to byte 0x116922 in that file. That byte is loaded at address 0x7faa7a194922 inside running program address space.Same as above, but the offset if given relative to a function
__fortify_faildefined in the file.The format of memory dump is explained in
man 5 procunder/proc/[pid]/mapsentry.Because debugging symbols are missing from the ELF files.