wifi: iwlwifi: fw: fix memory leak in debugfs
authorJohannes Berg <johannes.berg@intel.com>
Tue, 18 Apr 2023 09:28:05 +0000 (12:28 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 20 Apr 2023 09:45:54 +0000 (11:45 +0200)
Fix a memory leak that occurs when reading the fw_info
file all the way, since we return NULL indicating no
more data, but don't free the status tracking object.

Fixes: 36dfe9ac6e8b ("iwlwifi: dump api version in yaml format")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
Link: https://lore.kernel.org/r/20230418122405.239e501b3b8d.I4268f87809ef91209cbcd748eee0863195e70fa2@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/fw/debugfs.c

index 43e9972..607e07e 100644 (file)
@@ -317,8 +317,10 @@ static void *iwl_dbgfs_fw_info_seq_next(struct seq_file *seq,
        const struct iwl_fw *fw = priv->fwrt->fw;
 
        *pos = ++state->pos;
-       if (*pos >= fw->ucode_capa.n_cmd_versions)
+       if (*pos >= fw->ucode_capa.n_cmd_versions) {
+               kfree(state);
                return NULL;
+       }
 
        return state;
 }