In case create_freezable_workqueue fails, the fix return -ENOMEM
to avoid a potential NULL pointer dereference.
Signed-off-by: Kangjie Lu <[email protected]>
---
drivers/power/supply/charger-manager.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/power/supply/charger-manager.c b/drivers/power/supply/charger-manager.c
index 38be91f21cc4..d29c4f338157 100644
--- a/drivers/power/supply/charger-manager.c
+++ b/drivers/power/supply/charger-manager.c
@@ -1987,6 +1987,9 @@ static struct platform_driver charger_manager_driver = {
static int __init charger_manager_init(void)
{
cm_wq = create_freezable_workqueue("charger_manager");
+ if (unlikely(!cm_wq))
+ return -ENOMEM;
+
INIT_DELAYED_WORK(&cm_monitor_work, cm_monitor_poller);
return platform_driver_register(&charger_manager_driver);
--
2.17.1
Hi,
On Thu, Mar 14, 2019 at 01:02:47AM -0500, Kangjie Lu wrote:
> In case create_freezable_workqueue fails, the fix return -ENOMEM
> to avoid a potential NULL pointer dereference.
>
> Signed-off-by: Kangjie Lu <[email protected]>
> ---
Thanks, queued.
-- Sebastian
> drivers/power/supply/charger-manager.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/power/supply/charger-manager.c b/drivers/power/supply/charger-manager.c
> index 38be91f21cc4..d29c4f338157 100644
> --- a/drivers/power/supply/charger-manager.c
> +++ b/drivers/power/supply/charger-manager.c
> @@ -1987,6 +1987,9 @@ static struct platform_driver charger_manager_driver = {
> static int __init charger_manager_init(void)
> {
> cm_wq = create_freezable_workqueue("charger_manager");
> + if (unlikely(!cm_wq))
> + return -ENOMEM;
> +
> INIT_DELAYED_WORK(&cm_monitor_work, cm_monitor_poller);
>
> return platform_driver_register(&charger_manager_driver);
> --
> 2.17.1
>