2019-03-15 04:16:56

by Kangjie Lu

[permalink] [raw]
Subject: [PATCH] net: smc: fix a NULL pointer dereference

In case alloc_ordered_workqueue fails, the fix returns NULL
to avoid NULL pointer dereference.

Signed-off-by: Kangjie Lu <[email protected]>
---
net/smc/smc_ism.c | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/net/smc/smc_ism.c b/net/smc/smc_ism.c
index 2fff79db1a59..e89e918b88e0 100644
--- a/net/smc/smc_ism.c
+++ b/net/smc/smc_ism.c
@@ -289,6 +289,11 @@ struct smcd_dev *smcd_alloc_dev(struct device *parent, const char *name,
INIT_LIST_HEAD(&smcd->vlan);
smcd->event_wq = alloc_ordered_workqueue("ism_evt_wq-%s)",
WQ_MEM_RECLAIM, name);
+ if (!smcd->event_wq) {
+ kfree(smcd->conn);
+ kfree(smcd);
+ return NULL;
+ }
return smcd;
}
EXPORT_SYMBOL_GPL(smcd_alloc_dev);
--
2.17.1



2019-03-15 10:19:28

by Ursula Braun

[permalink] [raw]
Subject: Re: [PATCH] net: smc: fix a NULL pointer dereference



On 3/15/19 5:15 AM, Kangjie Lu wrote:
> In case alloc_ordered_workqueue fails, the fix returns NULL
> to avoid NULL pointer dereference.
>

Thanks, looks good. Your patch will be part of our next patch
submission for the net-tree.

Regards, Ursula

> Signed-off-by: Kangjie Lu <[email protected]>
> ---
> net/smc/smc_ism.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/net/smc/smc_ism.c b/net/smc/smc_ism.c
> index 2fff79db1a59..e89e918b88e0 100644
> --- a/net/smc/smc_ism.c
> +++ b/net/smc/smc_ism.c
> @@ -289,6 +289,11 @@ struct smcd_dev *smcd_alloc_dev(struct device *parent, const char *name,
> INIT_LIST_HEAD(&smcd->vlan);
> smcd->event_wq = alloc_ordered_workqueue("ism_evt_wq-%s)",
> WQ_MEM_RECLAIM, name);
> + if (!smcd->event_wq) {
> + kfree(smcd->conn);
> + kfree(smcd);
> + return NULL;
> + }
> return smcd;
> }
> EXPORT_SYMBOL_GPL(smcd_alloc_dev);
>