mdio_bus: NULL dereference on allocation error
Subsystems (4)
PATCH 1/1 mdio_bus: NULL dereference on allocation error
If bus = kzalloc() fails then we end up dereferencing bus when we do "bus->irq[i] = PHY_POLL;". The code is a little simpler if we reverse the NULL check and return directly on failure.
Fixes e7f4dc3536a4 ('mdio: Move allocation of interrupts into core')
Signed-off-by Dan Carpenter <[email protected]>
drivers/net/phy/mdio_bus.c +6 -5
@@ -102,11 +102,12 @@ struct mii_bus *mdiobus_alloc_size(size_t size) alloc_size =sizeof (*bus); bus =kzalloc (alloc_size,GFP_KERNEL ); -if (bus) { - bus->state =MDIOBUS_ALLOCATED ; -if (size) - bus->priv = (void *)bus + aligned_size; - } +if (!bus) +return NULL ; + + bus->state =MDIOBUS_ALLOCATED ; +if (size) + bus->priv = (void *)bus + aligned_size;/* Initialise the interrupts to polling */ for (i =0 ; i <PHY_MAX_ADDR ; i++)
Quoted 6 lines · Dan Carpenter
If bus =
kzalloc()fails then we end up dereferencing bus when we do "bus->irq[i] =PHY_POLL;". The code is a little simpler if we reverse the NULL check and return directly on failure.Fixes e7f4dc3536a4 ('mdio: Move allocation of interrupts into core')Signed-off-by Dan Carpenter <[email protected]>
Reviewed-by Andrew Lunn <[email protected]>
Thanks
Andrew
Quoted 23 lines
drivers/net/phy/mdio_bus.c +6
-5@@ -102,11 +102,12 @@ struct mii_bus *mdiobus_alloc_size(size_t size) alloc_size =sizeof (*bus); bus =kzalloc (alloc_size,GFP_KERNEL ); -if (bus) { - bus->state =MDIOBUS_ALLOCATED ; -if (size) - bus->priv = (void *)bus + aligned_size; - } +if (!bus) +return NULL ; + + bus->state =MDIOBUS_ALLOCATED ; +if (size) + bus->priv = (void *)bus + aligned_size;/* Initialise the interrupts to polling */ for (i =0 ; i <PHY_MAX_ADDR ; i++)
From: Dan Carpenter <[email protected]>
Date: Tue, 12 Jan 2016 12:34:36 +0300
Quoted 6 lines
If bus =
kzalloc()fails then we end up dereferencing bus when we do "bus->irq[i] =PHY_POLL;". The code is a little simpler if we reverse the NULL check and return directly on failure.Fixes e7f4dc3536a4 ('mdio: Move allocation of interrupts into core')Signed-off-by Dan Carpenter <[email protected]>
Applied.