Skip to content

Commit dd7b6a8

Browse files
Shitalkumar Gandhijmberg-intel
authored andcommitted
wifi: wilc1000: fix dma_buffer leak on bus acquire failure
wilc_wlan_firmware_download() allocates dma_buffer with kmalloc() at the top of the function and uses a 'fail:' label to free it via kfree(dma_buffer) on error. All later error paths correctly use 'goto fail' to route through this cleanup. However, the early failure path after the first acquire_bus() call uses a bare 'return ret;', which leaks dma_buffer whenever the bus acquire fails. Replace the early return with goto fail so the existing cleanup path runs. Found via a custom Coccinelle semantic patch hunting for kmalloc'd locals leaked on early-return error paths in driver firmware-download code. Fixes: 1241c56 ("wifi: wilc1000: Fill in missing error handling") Signed-off-by: Shitalkumar Gandhi <shitalkumar.gandhi@cambiumnetworks.com> Reviewed-by: Simon Horman <horms@kernel.org> Link: https://patch.msgid.link/20260511042732.998311-1-shitalkumar.gandhi@cambiumnetworks.com Signed-off-by: Johannes Berg <johannes.berg@intel.com>
1 parent d71c841 commit dd7b6a8

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

  • drivers/net/wireless/microchip/wilc1000

drivers/net/wireless/microchip/wilc1000/wlan.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1265,7 +1265,7 @@ int wilc_wlan_firmware_download(struct wilc *wilc, const u8 *buffer,
12651265

12661266
ret = acquire_bus(wilc, WILC_BUS_ACQUIRE_AND_WAKEUP);
12671267
if (ret)
1268-
return ret;
1268+
goto fail;
12691269

12701270
wilc->hif_func->hif_read_reg(wilc, WILC_GLB_RESET_0, &reg);
12711271
reg &= ~BIT(10);

0 commit comments

Comments
 (0)