OSDN Git Service

net: ethernet: cavium: octeon: octeon_mgmt: Handle return NULL error from devm_ioremap
authorArvind Yadav <arvind.yadav.cs@gmail.com>
Wed, 14 Dec 2016 19:03:30 +0000 (00:33 +0530)
committerDavid S. Miller <davem@davemloft.net>
Mon, 19 Dec 2016 16:03:34 +0000 (11:03 -0500)
Here, If devm_ioremap will fail. It will return NULL.
Kernel can run into a NULL-pointer dereference.
This error check will avoid NULL pointer dereference.

Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/cavium/octeon/octeon_mgmt.c

index 16e12c4..21f80f5 100644 (file)
@@ -1469,6 +1469,12 @@ static int octeon_mgmt_probe(struct platform_device *pdev)
        p->agl = (u64)devm_ioremap(&pdev->dev, p->agl_phys, p->agl_size);
        p->agl_prt_ctl = (u64)devm_ioremap(&pdev->dev, p->agl_prt_ctl_phys,
                                           p->agl_prt_ctl_size);
+       if (!p->mix || !p->agl || !p->agl_prt_ctl) {
+               dev_err(&pdev->dev, "failed to map I/O memory\n");
+               result = -ENOMEM;
+               goto err;
+       }
+
        spin_lock_init(&p->lock);
 
        skb_queue_head_init(&p->tx_list);