diff options
author | Oleg Nesterov <oleg@redhat.com> | 2010-04-02 18:05:12 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-04-26 07:47:49 -0700 |
commit | c49916829f7503eec91d3916f7ffbcb6993edbba (patch) | |
tree | 7d4d2467550bd11a961c0ac5dc2abed08611ed1e | |
parent | bfb7a32508e7b7af99ee9dc76c3d6d1a4a4eee10 (diff) | |
download | lwn-c49916829f7503eec91d3916f7ffbcb6993edbba.tar.gz lwn-c49916829f7503eec91d3916f7ffbcb6993edbba.zip |
tty: release_one_tty() forgets to put pids
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>
-rw-r--r-- | drivers/char/tty_io.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/char/tty_io.c b/drivers/char/tty_io.c index dcb9083ecde0..76253cf27028 100644 --- a/drivers/char/tty_io.c +++ b/drivers/char/tty_io.c @@ -1423,6 +1423,8 @@ static void release_one_tty(struct work_struct *work) list_del_init(&tty->tty_files); file_list_unlock(); + put_pid(tty->pgrp); + put_pid(tty->session); free_tty_struct(tty); } |