Message ID | 20190725015609.24389-1-navid.emamdoost@gmail.com |
---|---|
State | Changes Requested |
Delegated to: | David Miller |
Headers | show |
Series | net: mscc: ocelot: null check devm_kcalloc | expand |
From: Navid Emamdoost <navid.emamdoost@gmail.com> Date: Wed, 24 Jul 2019 20:56:09 -0500 > devm_kcalloc may fail and return NULL. Added the null check. > > Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com> > --- > drivers/net/ethernet/mscc/ocelot_board.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/net/ethernet/mscc/ocelot_board.c b/drivers/net/ethernet/mscc/ocelot_board.c > index 58bde1a9eacb..52377cfdc31a 100644 > --- a/drivers/net/ethernet/mscc/ocelot_board.c > +++ b/drivers/net/ethernet/mscc/ocelot_board.c > @@ -257,6 +257,8 @@ static int mscc_ocelot_probe(struct platform_device *pdev) > > ocelot->ports = devm_kcalloc(&pdev->dev, ocelot->num_phys_ports, > sizeof(struct ocelot_port *), GFP_KERNEL); > + if (!ocelot->ports) > + return -ENOMEM; > At the very least this leaks a reference to 'ports'. I didn't check what other resources obtained by this function are leaked as well by this change, please audit before resubmitting.
diff --git a/drivers/net/ethernet/mscc/ocelot_board.c b/drivers/net/ethernet/mscc/ocelot_board.c index 58bde1a9eacb..52377cfdc31a 100644 --- a/drivers/net/ethernet/mscc/ocelot_board.c +++ b/drivers/net/ethernet/mscc/ocelot_board.c @@ -257,6 +257,8 @@ static int mscc_ocelot_probe(struct platform_device *pdev) ocelot->ports = devm_kcalloc(&pdev->dev, ocelot->num_phys_ports, sizeof(struct ocelot_port *), GFP_KERNEL); + if (!ocelot->ports) + return -ENOMEM; INIT_LIST_HEAD(&ocelot->multicast); ocelot_init(ocelot);
devm_kcalloc may fail and return NULL. Added the null check. Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com> --- drivers/net/ethernet/mscc/ocelot_board.c | 2 ++ 1 file changed, 2 insertions(+)