[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

still segfaults..



Looks like dpkg 1.9.0 as currently in CVS isn't quite there yet, it
still segfaults, and the problem is still the same.

Some gdb output:
(gdb) bt
#0  0x805b7b5 in isdirectoryinuse (file=0x8a559b8, pkg=0x827541c)
    at /home/wichert/sources/cvs/debian/dpkg/main/help.c:413
#1  0x80595c5 in removal_bulk (pkg=0x827541c)
    at /home/wichert/sources/cvs/debian/dpkg/main/remove.c:240
#2  0x80592bf in deferred_remove (pkg=0x827541c)
    at /home/wichert/sources/cvs/debian/dpkg/main/remove.c:164
#3  0x805650c in process_queue ()
    at /home/wichert/sources/cvs/debian/dpkg/main/packages.c:199
#4  0x80561be in packages (argv=0xbffffb5c)
    at /home/wichert/sources/cvs/debian/dpkg/main/packages.c:126
#5  0x804b0a8 in main (argc=3, argv=0xbffffb54)
    at /home/wichert/sources/cvs/debian/dpkg/main/main.c:563
#6  0x4003d16b in __libc_start_main () from /lib/libc.so.6
(gdb) list 413
408       int i;
409         
410       debug(dbg_veryverbose, "isdirectoryinuse `%s' (except %s)", file->name,
411             pkg ? pkg->name : "<none>");
412       for (packageslump= file->packages; packageslump; packageslump= packageslump->more) {
413         debug(dbg_veryverbose, "isdirectoryinuse packageslump %s ...",
414               packageslump->pkgs[0] ? packageslump->pkgs[0]->name : "<none>");
415         for (i=0; i < PERFILEPACKAGESLUMP && packageslump->pkgs[i]; i++) {
416           debug(dbg_veryverbose, "isdirectoryinuse considering [%d] %s ...", i,
417                 packageslump->pkgs[i]->name);
(gdb) x/20c packageslump->pkgs
0x914dd90:      114 'r' 101 'e' 47 '/'  108 'l' 111 'o' 99 'c'  97 'a'  108 'l'
0x914dd98:      101 'e' 47 '/'  112 'p' 116 't' 95 '_'  66 'B'  82 'R'  47 '/'
0x914dda0:      76 'L'  67 'C'  95 '_'  77 'M'

Which clearly shows that dpkg still manages to write the filelist
in the wrong place in memory.

Simple recipe to reproduce this: grab
http://people.debian.org/~wakkerma/dpkg-segfault.tar.gz, install that
as your /var/lib/dpkg and try dpkg --remove tcsh-i18n.

Wichert.

-- 
  _________________________________________________________________
 /       Nothing is fool-proof to a sufficiently talented fool     \
| wichert@cistron.nl                  http://www.liacs.nl/~wichert/ |
| 1024D/2FA3BC2D 576E 100B 518D 2F16 36B0  2805 3CB8 9250 2FA3 BC2D |



Reply to: