aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVasiliy Kulikov <segooon@gmail.com>2010-10-17 10:51:57 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2010-10-19 13:10:54 -0400
commitb3495cebaaa64c9e6df9ab663dfb75e86a08f9ce (patch)
tree163920dbdbd48bee38fbd2a8d0a99f5592080985
parent6a56486716d54d2c16c46cde6a5cf10062cd6719 (diff)
staging: speakup: fix memory leak
speakup_init() didn't free first_console if speakup_kobj_init() fails. Also propagate speakup_kobj_init()'s return code. Signed-off-by: Vasiliy Kulikov <segooon@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/staging/speakup/main.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/staging/speakup/main.c b/drivers/staging/speakup/main.c
index a64704bd19bf..4b7a9c2b965f 100644
--- a/drivers/staging/speakup/main.c
+++ b/drivers/staging/speakup/main.c
@@ -2259,8 +2259,11 @@ static int __init speakup_init(void)
2259 first_console = kzalloc(sizeof(*first_console), GFP_KERNEL); 2259 first_console = kzalloc(sizeof(*first_console), GFP_KERNEL);
2260 if (!first_console) 2260 if (!first_console)
2261 return -ENOMEM; 2261 return -ENOMEM;
2262 if (speakup_kobj_init() < 0) 2262 err = speakup_kobj_init();
2263 return -ENOMEM; 2263 if (err) {
2264 kfree(first_console);
2265 return err;
2266 }
2264 2267
2265 reset_default_chars(); 2268 reset_default_chars();
2266 reset_default_chartab(); 2269 reset_default_chartab();