summaryrefslogtreecommitdiffstats
path: root/drivers/char/tty_ldisc.c
diff options
context:
space:
mode:
authorAlan Cox <alan@linux.intel.com>2009-06-16 17:00:26 +0100
committerLinus Torvalds <torvalds@linux-foundation.org>2009-06-16 12:01:15 -0700
commit8d2ead743dd54dff1fe3d0f4933e5da8bfe07472 (patch)
treee653d3da09b89190a2c97796b1bc3d8f70f0d69e /drivers/char/tty_ldisc.c
parent03347e2592078a90df818670fddf97a33eec70fb (diff)
downloadlinux-8d2ead743dd54dff1fe3d0f4933e5da8bfe07472.tar.gz
linux-8d2ead743dd54dff1fe3d0f4933e5da8bfe07472.tar.bz2
linux-8d2ead743dd54dff1fe3d0f4933e5da8bfe07472.zip
tty: Fix leaks introduced by the shift to separate ldisc objects
Gold star for the kmemleak detector. Signed-off-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/char/tty_ldisc.c')
-rw-r--r--drivers/char/tty_ldisc.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/char/tty_ldisc.c b/drivers/char/tty_ldisc.c
index 39c8f86dedd4..94b3e06d73ec 100644
--- a/drivers/char/tty_ldisc.c
+++ b/drivers/char/tty_ldisc.c
@@ -148,8 +148,10 @@ static struct tty_ldisc *tty_ldisc_try_get(int disc)
}
}
spin_unlock_irqrestore(&tty_ldisc_lock, flags);
- if (err)
+ if (err) {
+ kfree(ld);
return ERR_PTR(err);
+ }
return ld;
}
@@ -262,7 +264,7 @@ const struct file_operations tty_ldiscs_proc_fops = {
* @ld: line discipline
*
* Install an instance of a line discipline into a tty structure. The
- * ldisc must have a reference count above zero to ensure it remains/
+ * ldisc must have a reference count above zero to ensure it remains.
* The tty instance refcount starts at zero.
*
* Locking: