Commit cba4c2ac authored by Masakazu Mokuno's avatar Masakazu Mokuno Committed by Linus Torvalds

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: default avatarMasakazu Mokuno <mokuno@sm.sony.co.jp>
Cc: Richard Purdie <rpurdie@rpsys.net>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent f59b6f9f
...@@ -261,9 +261,12 @@ void led_trigger_register_simple(const char *name, struct led_trigger **tp) ...@@ -261,9 +261,12 @@ void led_trigger_register_simple(const char *name, struct led_trigger **tp)
if (trigger) { if (trigger) {
trigger->name = name; trigger->name = name;
err = led_trigger_register(trigger); err = led_trigger_register(trigger);
if (err < 0) if (err < 0) {
kfree(trigger);
trigger = NULL;
printk(KERN_WARNING "LED trigger %s failed to register" printk(KERN_WARNING "LED trigger %s failed to register"
" (%d)\n", name, err); " (%d)\n", name, err);
}
} else } else
printk(KERN_WARNING "LED trigger %s failed to register" printk(KERN_WARNING "LED trigger %s failed to register"
" (no memory)\n", name); " (no memory)\n", name);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment