Buffer overflow


I had my analysis program working in ROOT 5.18, but recently the computers at the lab were changed to ubuntu lucid lynx and the compilers are g++ 4.x. I had been using g++ 3.3 before. Now we have ROOT 5.26. And I upgraded my program to work with ROOT 5.26. It compiles, but keeps giving the following runtime error.

*** buffer overflow detected ***: /projects/06035/ROOT/root5.26/root/bin/root.exe terminated
======= Backtrace: =========

Here is the gdb backtrace:
#0 0x0012d422 in __kernel_vsyscall ()
#1 0x004527d3 in waitpid () from /lib/tls/i686/cmov/libc.so.6
#2 0x0804a427 in WaitChild (childpid=11160) at rootx/src/rootx.cxx:325
#3 0x0804ab45 in main (argc=1, argv=0xbffff024) at rootx/src/rootx.cxx:460

How can I solve this problem?


Looks like the error is in:

$ echo _ZN11TExperiment14ConvertEvtFileEPcS0_PKc | c++filt
TExperiment::ConvertEvtFile(char*, char*, char const*)

can you check for the usage of sprintf in there, where you likely go out of the space assigned to the buffer. Best to change to snprintf.

Cheers, Fons.