blktrace segfault
authorAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Mon, 29 Oct 2007 19:47:28 +0000 (20:47 +0100)
committerJens Axboe <jens.axboe@oracle.com>
Mon, 29 Oct 2007 19:47:28 +0000 (20:47 +0100)
Core was generated by `blktrace -d /dev/hdc'.
Program terminated with signal 11, Segmentation fault.
#0  0xb7e4cdec in ?? ()
(gdb) where
#0  0xb7e4cdec in ?? ()
#1  0xb7dbf000 in ?? ()
#2  0x00021000 in ?? ()
#3  0xb7dee6e8 in ?? ()
#4  0x0804ecf0 in ?? ()
#5  0x00000001 in ?? ()
#6  0x6c616367 in ?? ()
#7  0xbfee3f68 in ?? ()
#8  0xb7f51300 in ?? ()
#9  0x00000168 in ?? ()
#10 0x0804ecf0 in ?? ()
#11 0x00000001 in ?? ()
#12 0xbfee3f88 in ?? ()
#13 0xbfee3f68 in ?? ()
#14 0x080499dc in close_thread (tip=0xb7f1eff4) at blktrace.c:637
Backtrace stopped: frame did not save the PC
(gdb)

the below diff fix the same.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
blktrace.c

index 42613a7d481b6b683d5320d3ec9a8f173b5aad82..4f4fcdea0d650c0ba29d1b09eae2b0f9ba0400c9 100644 (file)
@@ -1220,6 +1220,7 @@ static int start_devices(void)
 
        size = ncpus * sizeof(struct thread_information);
        thread_information = malloc(size * ndevs);
+       memset(thread_information, 0, size*ndevs);
        if (!thread_information) {
                fprintf(stderr, "Out of memory, threads (%d)\n", size * ndevs);
                return 1;