From: Paolo Ornati <ornati@fastwebnet.it>
To: Neil Horman <nhorman@tuxdriver.com>
Cc: linux-kernel@vger.kernel.org, akpm@osdl.com, torvalds@osdl.com,
nhorman@tuxdriver.com
Subject: Re: [PATCH] select: fix sys_select to not leak ERESTARTNOHAND to userspace
Date: Mon, 22 Jan 2007 14:59:56 +0100 [thread overview]
Message-ID: <20070122145956.4a68762d@localhost> (raw)
In-Reply-To: <20070116201332.GA28523@hmsreliant.homelinux.net>
On Tue, 16 Jan 2007 15:13:32 -0500
Neil Horman <nhorman@tuxdriver.com> wrote:
> As it is currently written, sys_select checks its return code to convert
> ERESTARTNOHAND to EINTR. However, the check is within an if (tvp) clause, and
> so if select is called from userspace with a NULL timeval, then it is possible
> for the ERESTARTNOHAND errno to leak into userspace, which is incorrect. This
> patch moves that check outside of the conditional, and prevents the errno leak.
the ERESTARTNOHAND thing is handled in arch specific signal code,
syscalls can return -ERESTARTNOHAND as much as they want (and your
change breaks the current behaviour of select()).
For example:
arch/x86_64/kernel/signal.c
/* Are we from a system call? */
if ((long)regs->orig_rax >= 0) {
/* If so, check system call restarting.. */
switch (regs->rax) {
case -ERESTART_RESTARTBLOCK:
case -ERESTARTNOHAND:
regs->rax = -EINTR;
break;
--
Paolo Ornati
Linux 2.6.20-rc5 on x86_64
next prev parent reply other threads:[~2007-01-22 14:01 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-01-16 20:13 [PATCH] select: fix sys_select to not leak ERESTARTNOHAND to userspace Neil Horman
2007-01-22 13:59 ` Paolo Ornati [this message]
2007-01-22 14:52 ` Neil Horman
2007-01-22 16:03 ` Linus Torvalds
2007-01-22 16:24 ` Neil Horman
2007-01-23 0:00 ` bert hubert
2007-01-24 5:59 ` David Miller
2007-01-24 13:21 ` Neil Horman
-- strict thread matches above, loose matches on Subject: below --
2007-08-17 15:41 John Blackwood
2007-08-17 20:55 ` Neil Horman
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=20070122145956.4a68762d@localhost \
--to=ornati@fastwebnet.it \
--cc=akpm@osdl.com \
--cc=linux-kernel@vger.kernel.org \
--cc=nhorman@tuxdriver.com \
--cc=torvalds@osdl.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox