[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <62D7010C-B276-4D16-A28F-DA28B49CF663@umn.edu>
Date: Fri, 22 Mar 2019 22:33:40 -0500
From: Kangjie Lu <kjlu@....edu>
To: Eric Dumazet <eric.dumazet@...il.com>
Cc: Alexandre Belloni <alexandre.belloni@...tlin.com>,
pakki001@....edu,
Microchip Linux Driver Support <UNGLinuxDriver@...rochip.com>,
"David S. Miller" <davem@...emloft.net>, netdev@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] net: ocelot_board: fix a NULL pointer dereference
> On Mar 11, 2019, at 9:14 AM, Eric Dumazet <eric.dumazet@...il.com> wrote:
>
>
>
> On 03/11/2019 03:26 AM, Alexandre Belloni wrote:
>> On 11/03/2019 01:36:32-0500, Kangjie Lu wrote:
>>> In case devm_kcalloc fails, the fix returns -ENOMEM to avoid
>>> NULL pointer dereference.
>>>
>>> Signed-off-by: Kangjie Lu <kjlu@....edu>
>> Reviewed-by: Alexandre Belloni <alexandre.belloni@...tlin.com>
>>
>
> A proper error path is needed to avoid memory leaks.
Which objects require free specifically? The memory allocated with
devm_kzalloc() is freed automatically. No need to explicitly free it
again.
-Kangjie
>
>>> ---
>>> 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 e7f90101d2e0..af68abf1632a 100644
>>> --- a/drivers/net/ethernet/mscc/ocelot_board.c
>>> +++ b/drivers/net/ethernet/mscc/ocelot_board.c
>>> @@ -256,6 +256,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);
>>> --
>>> 2.17.1
>>>
>>
Powered by blists - more mailing lists