lkml.org 
[lkml]   [2010]   [Jan]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[05/29] tty: fix race in tty_fasync
    2.6.32-stable review patch.  If anyone has any objections, please let us know.

    ------------------

    From: Greg Kroah-Hartman <gregkh@suse.de>

    commit 703625118069f9f8960d356676662d3db5a9d116 upstream.

    We need to keep the lock held over the call to __f_setown() to
    prevent a PID race.

    Thanks to Al Viro for pointing out the problem, and to Travis for
    making us look here in the first place.

    Cc: Eric W. Biederman <ebiederm@xmission.com>
    Cc: Al Viro <viro@ZenIV.linux.org.uk>
    Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Tavis Ormandy <taviso@google.com>
    Cc: Jeff Dike <jdike@addtoit.com>
    Cc: Julien Tinnes <jln@google.com>
    Cc: Matt Mackall <mpm@selenic.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    drivers/char/tty_io.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/drivers/char/tty_io.c
    +++ b/drivers/char/tty_io.c
    @@ -1930,8 +1930,8 @@ static int tty_fasync(int fd, struct fil
    pid = task_pid(current);
    type = PIDTYPE_PID;
    }
    - spin_unlock_irqrestore(&tty->ctrl_lock, flags);
    retval = __f_setown(filp, pid, type, 0);
    + spin_unlock_irqrestore(&tty->ctrl_lock, flags);
    if (retval)
    goto out;
    } else {



    \
     
     \ /
      Last update: 2010-01-23 01:33    [W:2.983 / U:0.712 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site