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

Re: Can't menuconfig



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)



Reply to: