possible bug in libXt or libXaw
Mark Geisert
mark@maxrnd.com
Sun Nov 16 09:14:00 GMT 2014
Marco Atzeri writes:
> On 11/16/2014 7:30 AM, Mark Geisert wrote:
> > Marco Atzeri writes:
> >> this is the pointer causing the segfault
> >>
> >> (gdb) p form->form.horiz_base
> >> $2 = (Widget) 0x6275705f6779632f
> >>
> >> while similar pointers have a much smaller address,
> >>
> >> (gdb) p w
> >> $5 = (Widget) 0x60014bd50
> >>
> >> so it that an assignment not clearing the upper
> >> portion of the pointer.
> >
> > $2 is not a pointer that needed partial clearing, it's a character string
> > "/cyg_pub". Possibly a buffer overrun somewhere? Hope the string fragment
> > points the way to somebody.
> >
> > ..mark
> >
>
> thanks for the hint, "/cyg_pub" is a directory on the root
>
> $ ls -l / |grep pub
> lrwxrwxrwx 1 marco Administrators 19 Jun 26 19:11 pub ->
> /cygdrive/e/cyg_pub
>
> where the data file was stored,
> however moving it to "/tmp" produce as result
>
> p ref
> $1 = (Widget) 0x635f7261636e5f62 aka c_racn_b
>
> that is not very meaningful to me, so the pointer corruption
> can be very generic.
One has to reverse the bytes, so it's "b_ncar_c", but that's likely still
not meaningful :-(. You might try:
(gdb) set print pretty
(gdb) p form->form
or
(gdb) p *form->form
and in the output, look at the struct items before horiz_base to see if one
of them is a char array that has been overrun. If it's really hosed, all of
the items may have character string contents which means something before
(lower than) the address of form->form has been overrun.
Good Luck,
..mark
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://x.cygwin.com/docs/
FAQ: http://x.cygwin.com/docs/faq/
More information about the Cygwin-xfree
mailing list