|
From: Stelian P. <st...@po...> - 2010-12-06 15:57:10
|
Hi Kenneth,
I've finally found out a few minutes to look at your reported bug,
and I'm not sure what happens here:
> #0 readxattr (buffer=0xbfd76bf8 "") at tape.c:1294
> 1294 if (curfile.dip->di_size > XATTR_MAXSIZE) {
As you wrote in a follow-up, curfile is NULL here, exhibiting
the bug.
> (gdb) bt
> #0 readxattr (buffer=0xbfd76bf8 "") at tape.c:1294
> #1 0x080548bc in compareattr (name=0x8069ec7 "./var/log/named/queries")
> at tape.c:1731
> #2 0x0805789d in comparefile (name=0x8069ec7 "./var/log/named/queries")
> at tape.c:1946
... but it wasn't NULL at the beginning of comparefile(),
so we can assume that somehow during the file extraction
(getfile(), called from tape.c:1909), restore finds out an
inode (in findinode()) which is NOT a TS_INODE (so curfile.dip
and curfile.ino are not initialized) but which satisfies the
test on line 1718: "spcl.c_flags & DR_EXTATTRIBUTES"...
Are you able to reproduce the problem ? If you do, you could use
gdb, based on the analysis above, to see what happens...
> #3 0x0805025a in compare_entry (ep=0x18633ed0, do_compare=1) at
> restore.c:694
> #4 0x0805049f in compareleaves () at restore.c:748
> #5 0x0804ed98 in main (argc=Cannot access memory at address 0x0
> ) at main.c:475
Thanks,
Stelian.
--
Stelian Pop <st...@po...>
|