Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

net: ngbe: fix memory leak in ngbe_probe() error path

When ngbe_sw_init() is called, memory is allocated for wx->rss_key
in wx_init_rss_key(). However, in ngbe_probe() function, the subsequent
error paths after ngbe_sw_init() don't free the rss_key. Fix that by
freeing it in error path along with wx->mac_table.

Also change the label to which execution jumps when ngbe_sw_init()
fails, because otherwise, it could lead to a double free for rss_key,
when the mac_table allocation fails in wx_sw_init().

Fixes: 02338c484ab6 ("net: ngbe: Initialize sw info and register netdev")
Signed-off-by: Abdun Nihaal <abdun.nihaal@gmail.com>
Reviewed-by: Kory Maincent <kory.maincent@bootlin.com>
Reviewed-by: Jiawen Wu <jiawenwu@trustnetic.com>
Link: https://patch.msgid.link/20250412154927.25908-1-abdun.nihaal@gmail.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>

authored by

Abdun Nihaal and committed by
Paolo Abeni
88fa8002 65d91192

+2 -1
+2 -1
drivers/net/ethernet/wangxun/ngbe/ngbe_main.c
··· 625 625 /* setup the private structure */ 626 626 err = ngbe_sw_init(wx); 627 627 if (err) 628 - goto err_free_mac_table; 628 + goto err_pci_release_regions; 629 629 630 630 /* check if flash load is done after hw power up */ 631 631 err = wx_check_flash_load(wx, NGBE_SPI_ILDR_STATUS_PERST); ··· 719 719 err_clear_interrupt_scheme: 720 720 wx_clear_interrupt_scheme(wx); 721 721 err_free_mac_table: 722 + kfree(wx->rss_key); 722 723 kfree(wx->mac_table); 723 724 err_pci_release_regions: 724 725 pci_release_selected_regions(pdev,