From: Masakazu Mokuno Date: Wed, 28 Sep 2011 00:50:43 +0000 (+1000) Subject: drivers/leds/led-triggers.c: fix memory leak X-Git-Tag: next-20110930~1^2~82 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=99b6782eedc9413ffb237a0bd1571303dce8bfa4;p=karo-tx-linux.git drivers/leds/led-triggers.c: fix memory leak The memory for struct led_trigger should be kfreed in the led_trigger_register() error path. Also this function should return NULL on error. Signed-off-by: Masakazu Mokuno Cc: Richard Purdie Signed-off-by: Andrew Morton <> --- diff --git a/drivers/leds/led-triggers.c b/drivers/leds/led-triggers.c index 4bebae733349..6f1ff93d7cec 100644 --- a/drivers/leds/led-triggers.c +++ b/drivers/leds/led-triggers.c @@ -261,9 +261,12 @@ void led_trigger_register_simple(const char *name, struct led_trigger **tp) if (trigger) { trigger->name = name; err = led_trigger_register(trigger); - if (err < 0) + if (err < 0) { + kfree(trigger); + trigger = NULL; printk(KERN_WARNING "LED trigger %s failed to register" " (%d)\n", name, err); + } } else printk(KERN_WARNING "LED trigger %s failed to register" " (no memory)\n", name);