net: WIZnet drivers: fix possible NULL dereference
authorMike Sinkovsky <msink@permonline.ru>
Tue, 10 Apr 2012 19:53:53 +0000 (19:53 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 13 Apr 2012 17:34:12 +0000 (13:34 -0400)
This fixes possible null dereference in probe() function: when both
.mac_addr and .link_gpio are unknown, dev.platform_data may be NULL

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Mike Sinkovsky <msink@permonline.ru>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/wiznet/w5100.c
drivers/net/ethernet/wiznet/w5300.c

index 18c8098..a75e9ef 100644 (file)
@@ -682,7 +682,7 @@ static int __devinit w5100_hw_probe(struct platform_device *pdev)
                return ret;
        priv->irq = irq;
 
-       priv->link_gpio = data->link_gpio;
+       priv->link_gpio = data ? data->link_gpio : -EINVAL;
        if (gpio_is_valid(priv->link_gpio)) {
                char *link_name = devm_kzalloc(&pdev->dev, 16, GFP_KERNEL);
                if (!link_name)
index f36addf..3306a20 100644 (file)
@@ -594,7 +594,7 @@ static int __devinit w5300_hw_probe(struct platform_device *pdev)
                return ret;
        priv->irq = irq;
 
-       priv->link_gpio = data->link_gpio;
+       priv->link_gpio = data ? data->link_gpio : -EINVAL;
        if (gpio_is_valid(priv->link_gpio)) {
                char *link_name = devm_kzalloc(&pdev->dev, 16, GFP_KERNEL);
                if (!link_name)