net: sgi: ioc3-eth: check return value after calling platform_get_resource()
authorYang Yingliang <yangyingliang@huawei.com>
Wed, 9 Jun 2021 13:25:15 +0000 (21:25 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 19 Jul 2021 07:44:49 +0000 (09:44 +0200)
[ Upstream commit db8f7be1e1d64fbf113a456ef94534fbf5e9a9af ]

It will cause null-ptr-deref if platform_get_resource() returns NULL,
we need check the return value.

Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/sgi/ioc3-eth.c

index 6eef0f4..2b29fd4 100644 (file)
@@ -835,6 +835,10 @@ static int ioc3eth_probe(struct platform_device *pdev)
        int err;
 
        regs = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+       if (!regs) {
+               dev_err(&pdev->dev, "Invalid resource\n");
+               return -EINVAL;
+       }
        /* get mac addr from one wire prom */
        if (ioc3eth_get_mac_addr(regs, mac_addr))
                return -EPROBE_DEFER; /* not available yet */