diff options
author | Alan Cox <alan@linux.intel.com> | 2009-06-16 12:00:26 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-06-16 15:01:15 -0400 |
commit | 8d2ead743dd54dff1fe3d0f4933e5da8bfe07472 (patch) | |
tree | e653d3da09b89190a2c97796b1bc3d8f70f0d69e /drivers/char/tty_ldisc.c | |
parent | 03347e2592078a90df818670fddf97a33eec70fb (diff) |
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.c | 6 |
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) | |||
148 | } | 148 | } |
149 | } | 149 | } |
150 | spin_unlock_irqrestore(&tty_ldisc_lock, flags); | 150 | spin_unlock_irqrestore(&tty_ldisc_lock, flags); |
151 | if (err) | 151 | if (err) { |
152 | kfree(ld); | ||
152 | return ERR_PTR(err); | 153 | return ERR_PTR(err); |
154 | } | ||
153 | return ld; | 155 | return ld; |
154 | } | 156 | } |
155 | 157 | ||
@@ -262,7 +264,7 @@ const struct file_operations tty_ldiscs_proc_fops = { | |||
262 | * @ld: line discipline | 264 | * @ld: line discipline |
263 | * | 265 | * |
264 | * Install an instance of a line discipline into a tty structure. The | 266 | * Install an instance of a line discipline into a tty structure. The |
265 | * ldisc must have a reference count above zero to ensure it remains/ | 267 | * ldisc must have a reference count above zero to ensure it remains. |
266 | * The tty instance refcount starts at zero. | 268 | * The tty instance refcount starts at zero. |
267 | * | 269 | * |
268 | * Locking: | 270 | * Locking: |