net: sparx5: check return value after calling platform_get_resource()
authorYang Yingliang <yangyingliang@huawei.com>
Sat, 26 Jun 2021 04:44:18 +0000 (12:44 +0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 28 Jun 2021 21:20:22 +0000 (14:20 -0700)
It will cause null-ptr-deref if platform_get_resource() returns NULL,
we need check the return value.

Fixes: 3cfa11bac9bb ("net: sparx5: add the basic sparx5 driver")
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/microchip/sparx5/sparx5_main.c

index a325f7c..665e20c 100644 (file)
@@ -228,6 +228,10 @@ static int sparx5_create_targets(struct sparx5 *sparx5)
        for (idx = 0; idx < IO_RANGES; idx++) {
                iores[idx] = platform_get_resource(sparx5->pdev, IORESOURCE_MEM,
                                                   idx);
+               if (!iores[idx]) {
+                       dev_err(sparx5->dev, "Invalid resource\n");
+                       return -EINVAL;
+               }
                iomem[idx] = devm_ioremap(sparx5->dev,
                                          iores[idx]->start,
                                          iores[idx]->end - iores[idx]->start