debugging SIGSEV on pclose

Marco atzeri marco.atzeri@gmail.com
Thu Sep 8 14:15:00 GMT 2011


On 9/5/2011 2:20 PM, Marco atzeri wrote:
> Hi,
> I am trying to identify the octave segfault, last reported on
> http://cygwin.com/ml/cygwin-announce/2011-08/msg00003.html
>
> To reproduce: run octave from xterm and at prompt
> -------------------------
> graphics_toolkit ("fltk")
> x=1:10;
> plot(x,x)
> print("fltk.png","-dpng")
> -------------------------
> the plot is built and printed as file but octave crashes.
>
>
> After builiding cygwin (cvs), octave and fltk with
> gcc-4.5.3 I was able to identify the SIGSEV in cygwin pclose.
>
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 5980.0x164c]
> pclose (fp=0x7ffdf000) at
> /pub/cygwin/cvs/src_new/winsup/cygwin/syscalls.cc:4026
> 4026 if (fh->get_device () != FH_PIPEW && fh->get_device () != FH_PIPER)
> (gdb) l
> 4021 int
> 4022 pclose (FILE *fp)
> 4023 {
> 4024 fhandler_pipe *fh = (fhandler_pipe *) cygheap->fdtab[fileno(fp)];

Answering myself while kicking the head on the wall

the SIGSEV on 4026 is obvious as fh is NULL

(gdb) p fh
$7 = (fhandler_pipe *) 0x0
(gdb) p fp
$8 = (FILE *) 0x20204f94

> 4025
> 4026 if (fh->get_device () != FH_PIPEW && fh->get_device () != FH_PIPER)

Question:
is a mistake in pclose to assume that fh could be invalid

or something is just trashing cygheap->fdtab ?

Regards
Marco



--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list