Re: vfork test case.

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

 



> vfork ->
>   vfork syscall (pt-vfork.S)
> 
> This has not changed in 2.11.1.

I just assumed that a change must have occurred because of the behavior
of pex_unix_exec_child in libiberty/pex-unix.c.  I didn't investigate
history.

> Could you please elaborate on the change that you believe occurred in 2.11.=
> 1?
> 
> > I filed a sourceware bug, but closed it when I realized that
> > this is a glibc/kernel bug:
> > http://sourceware.org/bugzilla/show_bug.cgi?id=3D11730
> >
> > After spending some time looking at this, I realized that __vfork
> > is broken. =A0It should not allocate a frame as the child may clobber
> > the parent's frame when it does a call, etc. =A0A frame should only
> > be allocated and popped around the call to the syscall error handler.
> 
> Oh dear, yes I see. After the child returns from vfork, it calls exec,
> clobbering the vfork frame that the parent must still unwind from. Is
> that what you mean?

Yes.  Actually, pex_unix_exec_child may call dup2 and close as well.
In my gdb build, the parent's return address in the frame is clobbered
resulting in pex_child_error being called by the parent.

I looked at the hpux implementation and it doesn't create a frame.
Of course, the vfork syscall then must not clobber the return address,
etc.

Dave
-- 
J. David Anglin                                  dave.anglin@xxxxxxxxxxxxxx
National Research Council of Canada              (613) 990-0752 (FAX: 952-6602)
--
To unsubscribe from this list: send the line "unsubscribe linux-parisc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux SoC]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux