]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
staging: rtl8723bs: fix firmware memory leak on error
authorSamasth Norway Ananda <samasth.norway.ananda@oracle.com>
Fri, 30 Jan 2026 00:16:39 +0000 (16:16 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 7 Feb 2026 12:35:48 +0000 (13:35 +0100)
After successfully calling request_firmware(), if the firmware size
check fails or if kmemdup() fails, the code jumps to the exit label
without calling release_firmware(), causing a memory leak. Call
release_firmware() directly in each error path before jumping to cleanup
label.

Signed-off-by: Samasth Norway Ananda <samasth.norway.ananda@oracle.com>
Reviewed-by: Dan Carpenter <dan.carpenter@linaro.org>
Link: https://patch.msgid.link/20260130001641.17941-2-samasth.norway.ananda@oracle.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/rtl8723bs/hal/rtl8723b_hal_init.c

index 054e2c2eab02a686d3d0347eb89738bee6771b9e..528bc05169dedf71feb9eb48a3f1f60cd322d1bb 100644 (file)
@@ -346,12 +346,14 @@ s32 rtl8723b_FirmwareDownload(struct adapter *padapter, bool  bUsedWoWLANFw)
 
        if (fw->size > FW_8723B_SIZE) {
                rtStatus = _FAIL;
+               release_firmware(fw);
                goto exit;
        }
 
        pFirmware->fw_buffer_sz = kmemdup(fw->data, fw->size, GFP_KERNEL);
        if (!pFirmware->fw_buffer_sz) {
                rtStatus = _FAIL;
+               release_firmware(fw);
                goto exit;
        }