[Gluster-devel] this->ctx overwritten by a file path

Emmanuel Dreyfus manu at netbsd.org
Sun Jul 3 09:40:19 UTC 2011


Here is another SIGSEGV with 3.2.1 during tar -xzf

#0  0xbbba709e in _gf_log_callingfn (domain=0xbbbd1c75 "call-stub",
    file=0xbbbd1c69 "call-stub.c", 
    function=0xbbbd2040 "call_resume_wind", line=2487,    
    level=GF_LOG_ERROR, 
    fmt=0xbbbd1c7f "Invalid value of FOP (%d)") at logging.c:398
#1  0xbbbb574c in call_resume (stub=0xba8a90cc) at call-stub.c:2485
#2  0xbba1b9cf in iot_worker (data=0xba8a9080) at io-threads.c:129

It happens here:
              ret = gf_asprintf (&str1, "[%s] %s [%s:%d:%s] %s %d-%s: ",
                                   timestr, level_strings[level],
                                   basename, line, function, callstr,
                                   ((this->graph) ? this->graph->id:0),
                                   domain);

this->graphs seems to have been overwritten by a string:
(gdb) print this
(...)
      ctx = 0x74656e2f, graph = 0x2f647362, itable = 0x2f727375, 
      init_succeeded = 115 's', private = 0x72616873,

And indeed I find here a filename that tar is just extracting:

(gdb) x/1s &this->ctx
0xba99dd40:
"/netbsd/usr/src/share/doc/papers/relengr/tmac.srefs.02384i"

-- 
Emmanuel Dreyfus
http://hcpnet.free.fr/pubz
manu at netbsd.org




More information about the Gluster-devel mailing list