]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
tty: release_one_tty() forgets to put pids
authorOleg Nesterov <oleg@redhat.com>
Fri, 2 Apr 2010 16:05:12 +0000 (18:05 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 26 May 2010 21:27:06 +0000 (14:27 -0700)
commit 6da8d866d0d39e9509ff826660f6a86a6757c966 upstream.

release_one_tty(tty) can be called when tty still has a reference
to pgrp/session. In this case we leak the pid.

Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Reported-by: Catalin Marinas <catalin.marinas@arm.com>
Reported-and-tested-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
Acked-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/char/tty_io.c

index e6788f44f975b915a877225b6eda9cbc8e624e04..f325128776d5710307a4de06797b8991fed693f4 100644 (file)
@@ -1893,6 +1893,8 @@ static void release_one_tty(struct tty_struct *tty, int idx)
        list_del_init(&tty->tty_files);
        file_list_unlock();
 
+       put_pid(tty->pgrp);
+       put_pid(tty->session);
        free_tty_struct(tty);
 }