regulator: fix use after free bug
This is caused by dereferencing 'rdev' after device_unregister() in the regulator_unregister() function. 'rdev' is freed by device_unregister(), so it must not be dereferenced after this call. [Edited commit message for legibility -- broonie] Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
parent
d4d6373c11
commit
58fb5cf5d1
|
@ -2799,8 +2799,8 @@ void regulator_unregister(struct regulator_dev *rdev)
|
|||
list_del(&rdev->list);
|
||||
if (rdev->supply)
|
||||
regulator_put(rdev->supply);
|
||||
device_unregister(&rdev->dev);
|
||||
kfree(rdev->constraints);
|
||||
device_unregister(&rdev->dev);
|
||||
mutex_unlock(®ulator_list_mutex);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(regulator_unregister);
|
||||
|
|
Loading…
Reference in New Issue