]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
another .32 patch
authorGreg Kroah-Hartman <gregkh@suse.de>
Tue, 6 Apr 2010 23:47:47 +0000 (16:47 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 6 Apr 2010 23:47:47 +0000 (16:47 -0700)
queue-2.6.32/series
queue-2.6.32/tty-release_one_tty-forgets-to-put-pids.patch [new file with mode: 0644]

index 07d0c8f901856129692cc056880c3c74e5729c72..037085f21d7b7446a8664efc7e2f7b5569cbbf27 100644 (file)
@@ -38,3 +38,4 @@ mac80211-tear-down-all-agg-queues-when-restart-reconfig-hw.patch
 watchdog-hpwdt-fix-lower-timeout-limit.patch
 watchdog-itco_wdt-tco-watchdog-patch-for-additional-intel-cougar-point-deviceids.patch
 genirq-force-msi-irq-handlers-to-run-with-interrupts-disabled.patch
+tty-release_one_tty-forgets-to-put-pids.patch
diff --git a/queue-2.6.32/tty-release_one_tty-forgets-to-put-pids.patch b/queue-2.6.32/tty-release_one_tty-forgets-to-put-pids.patch
new file mode 100644 (file)
index 0000000..cfc47c4
--- /dev/null
@@ -0,0 +1,35 @@
+From 6da8d866d0d39e9509ff826660f6a86a6757c966 Mon Sep 17 00:00:00 2001
+From: Oleg Nesterov <oleg@redhat.com>
+Date: Fri, 2 Apr 2010 18:05:12 +0200
+Subject: tty: release_one_tty() forgets to put pids
+
+From: Oleg Nesterov <oleg@redhat.com>
+
+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 |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/char/tty_io.c
++++ b/drivers/char/tty_io.c
+@@ -1408,6 +1408,8 @@ static void release_one_tty(struct work_
+       list_del_init(&tty->tty_files);
+       file_list_unlock();
++      put_pid(tty->pgrp);
++      put_pid(tty->session);
+       free_tty_struct(tty);
+ }