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