Re: compat_sys_times() bogus until jiffies >= 0.

From: Andrew Morton
Date: Thu Nov 08 2007 - 02:10:00 EST


> On Wed, 07 Nov 2007 22:25:30 -0800 (PST) David Miller <davem@xxxxxxxxxxxxx> wrote:
> From: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> Date: Wed, 7 Nov 2007 21:20:05 -0800
>
> > Yup. But userspace will already have a fit if either the start or end time
> > advanced into the glibc-thought-that-was-an-error range.
>
> On x86 only. We could use force_successful_syscall_return()
> to make sure the condition codes get set correctly on
> other platforms.
>
> But even in that case we'd still be broken when the return
> value is exactly -1 and that's what the application is going
> to compare against to test for errors.

I don't think that's a big problem? This syscall can (oddly) return any
32-bit (64-bit) number and a smart application developer (after saying wtf)
would realise that he just can't check for errors and have correctly
working code.

Then again, if he was smart he just wouldn't use times(2)'s return value
for anything. But what is the alternative? I don't think there is one,
apart from much saner things like gettimeofday().

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/