Messages in this thread | | | From | Han Pingtian <> | Subject | [PATCH] perf: fix buffer overflow error caused by specifying all tracepoints with -e option | Date | Thu, 6 Jan 2011 18:08:07 +0800 |
| |
Hi,
I found specifying all tracepoints within one "-e" option to perf top, separating each other with commas, will trigger a buffer overflow.
The command line is:
./perf to -e `perf list |grep Tracepoint|awk -F'[' '{gsub(/[[:space:]]+/,"",$1);array[FNR]=$1}END{outputs=array[1];for (i=2;i<=FNR;i++){ outputs=outputs "," array[i];};print outputs}'`
The error messages are:
*** buffer overflow detected ***: ./perf terminated ======= Backtrace: ========= /lib64/libc.so.6(__fortify_fail+0x37)[0x382cefb2c7] /lib64/libc.so.6[0x382cef91c0] /lib64/libc.so.6[0x382cef82f4] ./perf[0x424f9e] ./perf[0x425966] ./perf[0x42422b] ./perf[0x424468] ./perf[0x424a30] ./perf[0x41539a] ./perf[0x4056d4] ./perf[0x406126] /lib64/libc.so.6(__libc_start_main+0xfd)[0x382ce1ec5d] ./perf[0x405409] ======= Memory map: ======== 00400000-0051c000 r-xp 00000000 fd:06 4573758 /home/hpt/temp/linux/perf/linux-2.6/tools/perf/perf 0071b000-00733000 rwxp 0011b000 fd:06 4573758 /home/hpt/temp/linux/perf/linux-2.6/tools/perf/perf 00733000-00b90000 rwxp 00000000 00:00 0 024dc000-024fd000 rwxp 00000000 00:00 0 [heap] ... ...
And I have a patch for fixing this problem. Please review it. Thanks.
| |