hv_netvsc: Fix potential dereference of NULL pointer
authorYongzhi Liu <lyz_cs@pku.edu.cn>
Thu, 19 May 2022 12:09:48 +0000 (05:09 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 Jun 2022 08:23:02 +0000 (10:23 +0200)
[ Upstream commit eb4c0788964730d12e8dd520bd8f5217ca48321c ]

The return value of netvsc_devinfo_get()
needs to be checked to avoid use of NULL
pointer in case of an allocation failure.

Fixes: 0efeea5fb153 ("hv_netvsc: Add the support of hibernation")
Signed-off-by: Yongzhi Liu <lyz_cs@pku.edu.cn>
Reviewed-by: Haiyang Zhang <haiyangz@microsoft.com>
Link: https://lore.kernel.org/r/1652962188-129281-1-git-send-email-lyz_cs@pku.edu.cn
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/hyperv/netvsc_drv.c

index bdfcf75f082776d1bf95eb8cb4aea14ddda666b7..ae4577731e3e2dd0c6eeb623570029c3c6010bd3 100644 (file)
@@ -2665,7 +2665,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();