mirror of
https://github.com/torvalds/linux.git
synced 2026-10-07 05:31:08 -04:00
power_supply: Fix use after free and memory leak
device_unregister() might free its argument. This leads to freed memory use in kfree(). Also use put_device() instead of kfree() as dev may be already used in another layer after call to device_add(). Signed-off-by: Vasiliy Kulikov <[email protected]> Signed-off-by: Anton Vorontsov <[email protected]>
This commit is contained in:
1 parent
26eb387265
commit
3a2dbd611b
1 file changed
+2
-2
@@ -190,10 +190,10 @@ int power_supply_register(struct device *parent, struct power_supply *psy)
|
||||
goto success;
|
||||
|
||||
create_triggers_failed:
|
||||
device_unregister(psy->dev);
|
||||
device_del(dev);
|
||||
kobject_set_name_failed:
|
||||
device_add_failed:
|
||||
kfree(dev);
|
||||
put_device(dev);
|
||||
success:
|
||||
return rc;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user