times(2) sys call bug?
Joakim Tjernlund
joakim.tjernlund at transmode.se
Fri Nov 21 19:47:35 EST 2008
On Fri, 2008-11-21 at 09:41 +0100, Gabriel Paubert wrote:
> 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.
Not so, look again:
asmlinkage long sys_times(struct tms __user * tbuf)
{
...
if (tbuf) {
...
if (copy_to_user(tbuf, &tmp, sizeof(struct tms)))
return -EFAULT;
}
force_successful_syscall_return();
return (long) jiffies_64_to_clock_t(get_jiffies_64());
}
More information about the Linuxppc-dev
mailing list