]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
wifi: iwlwifi: fw: Fix possible memory leak in iwl_fw_dbg_collect
authorPagadala Yesu Anjaneyulu <pagadala.yesu.anjaneyulu@intel.com>
Wed, 11 Jun 2025 19:26:23 +0000 (22:26 +0300)
committerMiri Korenblit <miriam.rachel.korenblit@intel.com>
Wed, 25 Jun 2025 07:57:32 +0000 (10:57 +0300)
Ensure descriptor is freed on error to avoid memory leak.

Signed-off-by: Pagadala Yesu Anjaneyulu <pagadala.yesu.anjaneyulu@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20250611222325.8158d15ec866.Ifa3e422c302397111f20a16da7509e6574bc19e3@changeid
drivers/net/wireless/intel/iwlwifi/fw/dbg.c

index ea739ebe7cb0f140e38c04dcb1496a19dfe10886..95a732efce45de7f903c54bb8723e5894a0f2ef3 100644 (file)
@@ -3008,6 +3008,7 @@ int iwl_fw_dbg_collect(struct iwl_fw_runtime *fwrt,
        struct iwl_fw_dump_desc *desc;
        unsigned int delay = 0;
        bool monitor_only = false;
+       int ret;
 
        if (trigger) {
                u16 occurrences = le16_to_cpu(trigger->occurrences) - 1;
@@ -3038,7 +3039,11 @@ int iwl_fw_dbg_collect(struct iwl_fw_runtime *fwrt,
        desc->trig_desc.type = cpu_to_le32(trig);
        memcpy(desc->trig_desc.data, str, len);
 
-       return iwl_fw_dbg_collect_desc(fwrt, desc, monitor_only, delay);
+       ret = iwl_fw_dbg_collect_desc(fwrt, desc, monitor_only, delay);
+       if (ret)
+               kfree(desc);
+
+       return ret;
 }
 IWL_EXPORT_SYMBOL(iwl_fw_dbg_collect);