net: atlantic: fix potential memory leak in aq_ndev_close()
authorJianglei Nie <niejianglei2021@163.com>
Wed, 14 Sep 2022 01:42:38 +0000 (09:42 +0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 21 Sep 2022 11:50:57 +0000 (12:50 +0100)
If aq_nic_stop() fails, aq_ndev_close() returns err without calling
aq_nic_deinit() to release the relevant memory and resource, which
will lead to a memory leak.

We can fix it by deleting the if condition judgment and goto statement to
call aq_nic_deinit() directly after aq_nic_stop() to fix the memory leak.

Signed-off-by: Jianglei Nie <niejianglei2021@163.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/aquantia/atlantic/aq_main.c

index 88595863d8bc6cb7472b0cb859aed1674ddc162b..8a0af371e7dc7a0c865ac0f145b2fe02f114b177 100644 (file)
@@ -94,11 +94,8 @@ static int aq_ndev_close(struct net_device *ndev)
        int err = 0;
 
        err = aq_nic_stop(aq_nic);
-       if (err < 0)
-               goto err_exit;
        aq_nic_deinit(aq_nic, true);
 
-err_exit:
        return err;
 }