diff options
author | roel kluin <roel.kluin@gmail.com> | 2009-08-30 18:40:15 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-09-01 20:40:56 -0400 |
commit | dcbfef820bdd1cdb412ccf234840e23edf67014f (patch) | |
tree | a8fa09b17f0a9e573f859b558ebcebb0ba9ea572 /drivers/net/au1000_eth.c | |
parent | 5d7892298a819743b3892df08bb496992fe85951 (diff) |
au1000_eth: possible NULL dereference of aup->mii_bus->irq in au1000_probe()
aup->mii_bus->irq allocation may fail, prevent a dereference of NULL.
Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Acked-by: Florian Fainelli <florian@openwrt.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/au1000_eth.c')
-rw-r--r-- | drivers/net/au1000_eth.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/au1000_eth.c b/drivers/net/au1000_eth.c index 407fd45f56a1..fdf5937233fc 100644 --- a/drivers/net/au1000_eth.c +++ b/drivers/net/au1000_eth.c | |||
@@ -1157,6 +1157,9 @@ static struct net_device * au1000_probe(int port_num) | |||
1157 | aup->mii_bus->name = "au1000_eth_mii"; | 1157 | aup->mii_bus->name = "au1000_eth_mii"; |
1158 | snprintf(aup->mii_bus->id, MII_BUS_ID_SIZE, "%x", aup->mac_id); | 1158 | snprintf(aup->mii_bus->id, MII_BUS_ID_SIZE, "%x", aup->mac_id); |
1159 | aup->mii_bus->irq = kmalloc(sizeof(int)*PHY_MAX_ADDR, GFP_KERNEL); | 1159 | aup->mii_bus->irq = kmalloc(sizeof(int)*PHY_MAX_ADDR, GFP_KERNEL); |
1160 | if (aup->mii_bus->irq == NULL) | ||
1161 | goto err_out; | ||
1162 | |||
1160 | for(i = 0; i < PHY_MAX_ADDR; ++i) | 1163 | for(i = 0; i < PHY_MAX_ADDR; ++i) |
1161 | aup->mii_bus->irq[i] = PHY_POLL; | 1164 | aup->mii_bus->irq[i] = PHY_POLL; |
1162 | 1165 | ||