times(2) sys call bug?
Gabriel Paubert
paubert at iram.es
Fri Nov 21 20:50:59 EST 2008
On Fri, Nov 21, 2008 at 08:03:06PM +1100, Paul Mackerras wrote:
> Gabriel Paubert writes:
>
> > On Fri, Nov 21, 2008 at 10:52:14AM +1100, Paul Mackerras wrote:
> > > Joakim Tjernlund writes:
> > >
> > > > This little hack changes the kernel sys call handling in an crude
> > > > way and then it works. Apperently the kernel thinks is an error if the
> > > > syscall returns a value between -_LAST_ERRNO and -1.
> > >
> > > Try this patch and let me if it fixes it. If it does I'll push it
> > > upstream.
> >
> > With your patch, you won't get EFAULT if you pass a bad
> > address, but a constant, time independent value, unless
> > I miss something.
>
> I think you are missing something, namely that I put the call to
> force_successful_syscall_return() AFTER the return -EFAULT.
>
Indeed, it may be time to update the syscall documentation, saying
that you need to clear errno before the syscall and check errno
and not the return value since -1 is valid.
Who does this? I have spotted some errors in other places on
my man pages too, especially in the networking area (they were
correct once upon a time, but have not been updated).
Regards,
Gabriel
More information about the Linuxppc-dev
mailing list