On Tuesday 13 April 2004 03:52 pm, Richard Harke wrote: > On Sunday 11 April 2004 10:52 pm, Richard Harke wrote: > > On Sunday 11 April 2004 03:40 pm, Matthew Wilcox wrote: > > > On Fri, Apr 09, 2004 at 06:05:55PM -0700, Richard Harke wrote: > > > > The error is a longish harangue from the menuconfig script based on > > > > getting a value of 139 back from lxdialog > > > > > > Return values above 128 are 128 + signal number. ie 139 - 128 = 11. > > > lxdialog received signal 11 which is SIGSEGV. > > > > Thanks, I'll see if I can catch it with GDB > > I installed libncurses5-dbg (54.-3) and libc6.1-dbg (2.3.2.ds1-11) > and I get the following backtrace. One can see that the format pointer > changed near the call to _IO_vfprintf but I haven't been able > to see why. Maybe somebody with more experience will spot > it more quickly. The changed format pointer apparently has nothing to do with this. In libncurses, in read_entry.c there is a call to sprintf which looks ok. But when it gets into libc something has happened to its arg list, i.e., this seems to be a var_args problem The format specifier is "%c/%.*s" This requires an int for the field width as required by the * but its not there Also s is NULL This would be OK if the width was there but together these lead to the seg fault Its very late, I hope this is clear.
> > (gdb) bt > #0 _IO_vfprintf (s=0x60000fffffff98b0, > format=0xe000000000000002 <Address 0xe000000000000002 out of bounds>, > ap=0x60000fffffff99b8) at vfprintf.c:231 > #1 0x20000000001b3430 in _IO_vsprintf (string=0x60000fffffff99d0 "x/", > format=0x20000000000d1338 "%c/%.*s", args=0x60000fffffff99a0) > at iovsprintf.c:46 > #2 0x2000000000194330 in *__GI_sprintf (s=0x60000fffffff99d0 "x/", > format=0x20000000000d1338 "%c/%.*s") at sprintf.c:36 > #3 0x20000000000c2240 in _nc_read_entry (tn=0x60000fffffffbe17 "xterm", > filename=0x60000fffffffa9d0 "", tp=0x6000000000016f30) > at /build/buildd/ncurses-5.4/ncurses/tinfo/read_entry.c:464 > #4 0x20000000000b3890 in grab_entry (tn=0x60000fffffffbe17 "xterm", > tp=0x6000000000016f30) > at /build/buildd/ncurses-5.4/ncurses/tinfo/lib_setup.c:242 > #5 0x20000000000b40d0 in setupterm (tname=0x60000fffffffbe17 "xterm", > Filedes=1, errret=0x60000fffffffb9d0) > at /build/buildd/ncurses-5.4/ncurses/tinfo/lib_setup.c:438 > #6 0x2000000000083c10 in newterm (name=0x60000fffffffbe17 "xterm", > ofp=0x600000000000bdb0, ifp=0x600000000000bb60) > at /build/buildd/ncurses-5.4/ncurses/base/lib_newterm.c:106 > #7 0x200000000007bff0 in initscr () > at /build/buildd/ncurses-5.4/ncurses/base/lib_initscr.c:52 > #8 0x4000000000017490 in init_dialog () at util.c:147 > #9 0x400000000001a140 in main (argc=5, argv=0x60000fffffffbbf8) > at lxdialog.c:127 > (gdb)

