Skip to content

Commit

Permalink
regulator: fix use after free bug
Browse files Browse the repository at this point in the history
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 <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
  • Loading branch information
lw-karo authored and broonie committed Nov 28, 2011
1 parent d4d6373 commit 58fb5cf
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion drivers/regulator/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -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(&regulator_list_mutex);
}
EXPORT_SYMBOL_GPL(regulator_unregister);
Expand Down

0 comments on commit 58fb5cf

Please sign in to comment.