[PATCH] hv_netvsc: Fix potential dereference of NULL pointer

Yongzhi Liu posted 1 patch 3 years, 11 months ago
There is a newer version of this series
drivers/net/hyperv/netvsc_drv.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
[PATCH] hv_netvsc: Fix potential dereference of NULL pointer
Posted by Yongzhi Liu 3 years, 11 months ago
The return value of netvsc_devinfo_get()
needs to be checked to avoid use of NULL
pointer in case of an allocation failure.

Fixes: 0efeea5fb ("hv_netvsc: Add the support of hibernation")

Signed-off-by: Yongzhi Liu <lyz_cs@pku.edu.cn>
---
 drivers/net/hyperv/netvsc_drv.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c
index fde1c49..b1dece6 100644
--- a/drivers/net/hyperv/netvsc_drv.c
+++ b/drivers/net/hyperv/netvsc_drv.c
@@ -2671,7 +2671,10 @@ static int netvsc_suspend(struct hv_device *dev)
 
 	/* Save the current config info */
 	ndev_ctx->saved_netvsc_dev_info = netvsc_devinfo_get(nvdev);
-
+	if (!ndev_ctx->saved_netvsc_dev_info) {
+		ret = -ENOMEM;
+		goto out;
+	}
 	ret = netvsc_detach(net, nvdev);
 out:
 	rtnl_unlock();
-- 
2.7.4
RE: [PATCH] hv_netvsc: Fix potential dereference of NULL pointer
Posted by Haiyang Zhang 3 years, 11 months ago

> -----Original Message-----
> From: Yongzhi Liu <lyz_cs@pku.edu.cn>
> Sent: Thursday, May 19, 2022 8:10 AM
> To: KY Srinivasan <kys@microsoft.com>; Haiyang Zhang
> <haiyangz@microsoft.com>; Stephen Hemminger
> <sthemmin@microsoft.com>; wei.liu@kernel.org; Dexuan Cui
> <decui@microsoft.com>; davem@davemloft.net; kuba@kernel.org;
> pabeni@redhat.com; sashal@kernel.org
> Cc: linux-hyperv@vger.kernel.org; netdev@vger.kernel.org; linux-
> kernel@vger.kernel.org; fuyq@stu.pku.edu.cn; Yongzhi Liu
> <lyz_cs@pku.edu.cn>
> Subject: [PATCH] hv_netvsc: Fix potential dereference of NULL pointer
> 
> [Some people who received this message don't often get email from
> lyz_cs@pku.edu.cn. Learn why this is important at
> https://aka.ms/LearnAboutSenderIdentification.]
> 
> The return value of netvsc_devinfo_get()
> needs to be checked to avoid use of NULL
> pointer in case of an allocation failure.
> 
> Fixes: 0efeea5fb ("hv_netvsc: Add the support of hibernation")
> 
> Signed-off-by: Yongzhi Liu <lyz_cs@pku.edu.cn>
> ---
>  drivers/net/hyperv/netvsc_drv.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/hyperv/netvsc_drv.c
> b/drivers/net/hyperv/netvsc_drv.c
> index fde1c49..b1dece6 100644
> --- a/drivers/net/hyperv/netvsc_drv.c
> +++ b/drivers/net/hyperv/netvsc_drv.c
> @@ -2671,7 +2671,10 @@ static int netvsc_suspend(struct hv_device *dev)
> 
>         /* Save the current config info */
>         ndev_ctx->saved_netvsc_dev_info = netvsc_devinfo_get(nvdev);
> -
> +       if (!ndev_ctx->saved_netvsc_dev_info) {
> +               ret = -ENOMEM;
> +               goto out;
> +       }
>         ret = netvsc_detach(net, nvdev);
>  out:
>         rtnl_unlock();

Reviewed-by: Haiyang Zhang <haiyangz@microsoft.com>
Thank you!