diff mbox series

hv_netvsc: Fix potential dereference of NULL pointer

Message ID 1653103862-36104-1-git-send-email-lyz_cs@pku.edu.cn (mailing list archive)
State Not Applicable
Headers show
Series hv_netvsc: Fix potential dereference of NULL pointer | expand

Commit Message

刘永志 May 21, 2022, 3:31 a.m. UTC
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(-)

Comments

刘永志 May 21, 2022, 3:34 a.m. UTC | #1
I'm sorry to send this to linux-iio by mistake. I will cautiously submit patches later.

> -----Original Messages-----
> From: "Yongzhi Liu" <lyz_cs@pku.edu.cn>
> Sent Time: 2022-05-21 11:31:02 (Saturday)
> To: agross@kernel.org, bjorn.andersson@linaro.org, jic23@kernel.org, lars@metafoo.de, svarbanov@mm-sol.com, iivanov@mm-sol.com, jonathan.cameron@huawei.com
> Cc: linux-arm-msm@vger.kernel.org, linux-iio@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
> 
> 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
Andy Shevchenko May 23, 2022, 3:21 p.m. UTC | #2
On Sat, May 21, 2022 at 6:27 AM Yongzhi Liu <lyz_cs@pku.edu.cn> wrote:
>
> 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>

For the future independently of the subsystem or mailing list, the tag
block (above) mustn't have lank lines.
刘永志 May 23, 2022, 3:45 p.m. UTC | #3
> -----Original Messages-----
> From: "Andy Shevchenko" <andy.shevchenko@gmail.com>
> Sent Time: 2022-05-23 23:21:54 (Monday)
> To: "Yongzhi Liu" <lyz_cs@pku.edu.cn>
> Cc: "Andy Gross" <agross@kernel.org>, "Bjorn Andersson" <bjorn.andersson@linaro.org>, "Jonathan Cameron" <jic23@kernel.org>, "Lars-Peter Clausen" <lars@metafoo.de>, "Stanimir Varbanov" <svarbanov@mm-sol.com>, "Ivan T. Ivanov" <iivanov@mm-sol.com>, "Jonathan Cameron" <jonathan.cameron@huawei.com>, linux-arm-msm <linux-arm-msm@vger.kernel.org>, linux-iio <linux-iio@vger.kernel.org>, "Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>, fuyq@stu.pku.edu.cn
> Subject: Re: [PATCH] hv_netvsc: Fix potential dereference of NULL pointer
> 
> On Sat, May 21, 2022 at 6:27 AM Yongzhi Liu <lyz_cs@pku.edu.cn> wrote:
> >
> > 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>
>

Thanks for your reply and advice.

> For the future independently of the subsystem or mailing list, the tag
> block (above) mustn't have lank lines.
>
> -- 
> With Best Regards,
> Andy Shevchenko
diff mbox series

Patch

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();