From: Andrew Morton <akpm@osdl.org>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-kernel@vger.kernel.org, mingo@elte.hu, trini@kernel.crashing.org
Subject: Re: [patch 1/2] Validate itimer timeval from userspace
Date: Sat, 18 Mar 2006 12:07:28 -0800 [thread overview]
Message-ID: <20060318120728.63cbad54.akpm@osdl.org> (raw)
In-Reply-To: <20060318142830.607556000@localhost.localdomain>
Thomas Gleixner <tglx@linutronix.de> wrote:
>
>
> According to the specification the timeval must be validated and
> an errorcode -EINVAL returned in case the timeval is not in canonical
> form. Before the hrtimer merge this was silently ignored by the
> timeval to jiffies conversion. The validation is done inside
> do_setitimer so all callers are catched.
>
> ...
>
> --- linux-2.6.16-rc6-updates.orig/include/linux/time.h
> +++ linux-2.6.16-rc6-updates/include/linux/time.h
> @@ -73,6 +73,12 @@ extern void set_normalized_timespec(stru
> #define timespec_valid(ts) \
> (((ts)->tv_sec >= 0) && (((unsigned long) (ts)->tv_nsec) < NSEC_PER_SEC))
>
> +/*
> + * Returns true if the timeval is in canonical form
> + */
> +#define timeval_valid(t) \
> + (((t)->tv_sec >= 0) && (((unsigned long) (t)->tv_usec) < USEC_PER_SEC))
> +
> extern struct timespec xtime;
> extern struct timespec wall_to_monotonic;
> extern seqlock_t xtime_lock;
> Index: linux-2.6.16-rc6-updates/kernel/itimer.c
> ===================================================================
> --- linux-2.6.16-rc6-updates.orig/kernel/itimer.c
> +++ linux-2.6.16-rc6-updates/kernel/itimer.c
> @@ -150,6 +150,14 @@ int do_setitimer(int which, struct itime
> ktime_t expires;
> cputime_t cval, cinterval, nval, ninterval;
>
> + /*
> + * Validate the timeval. This catches all users of
> + * do_setitimer.
> + */
> + if (!timeval_valid(&value->it_value) ||
> + !timeval_valid(&value->it_interval))
> + return -EINVAL;
> +
> switch (which) {
> case ITIMER_REAL:
> again:
>From my reading, 2.4's sys_setitimer() will normalise the incoming timeval
rather than rejecting it. And I think 2.6.13 did that too.
It would be bad of us to change this behaviour, even if that's what the
spec says we should do - because we can break existing applications.
So I think we're stuck with it - we should normalise and then accept such
timevals. And we should have a big comment explaining how we differ from
the spec, and why.
next prev parent reply other threads:[~2006-03-18 20:10 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-03-18 15:18 [patch 0/2] sys_setitimer and sys_alarm hotfixes Thomas Gleixner
2006-03-18 15:18 ` [patch 1/2] Validate itimer timeval from userspace Thomas Gleixner
2006-03-18 19:10 ` Ingo Molnar
2006-03-18 19:57 ` Thomas Gleixner
2006-03-18 20:07 ` Andrew Morton [this message]
2006-03-18 20:16 ` Thomas Gleixner
2006-03-18 20:31 ` Andrew Morton
2006-03-18 20:38 ` Thomas Gleixner
2006-03-18 21:09 ` Andrew Morton
2006-03-18 21:26 ` Jesper Juhl
2006-03-18 21:33 ` Andrew Morton
2006-03-18 21:50 ` Jesper Juhl
2006-03-18 22:05 ` Thomas Gleixner
2006-03-18 22:25 ` Andrew Morton
2006-03-18 23:12 ` tglx
2006-03-18 20:45 ` Jesper Juhl
2006-03-18 22:02 ` Ray Lee
2006-03-18 23:14 ` Eric Piel
2006-03-19 8:55 ` Kyle Moffett
2006-03-18 20:23 ` Jesper Juhl
2006-03-18 20:30 ` Thomas Gleixner
2006-03-18 21:04 ` Andrew Morton
2006-03-21 15:31 ` Pavel Machek
2006-03-18 15:18 ` [patch 2/2] alarm unsigned signed conversion fixup Thomas Gleixner
2006-03-18 20:02 ` Thomas Gleixner
2006-03-18 20:12 ` Andrew Morton
2006-03-18 20:27 ` Thomas Gleixner
2006-03-18 21:06 ` Andrew Morton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20060318120728.63cbad54.akpm@osdl.org \
--to=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=tglx@linutronix.de \
--cc=trini@kernel.crashing.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.