Commit 9bab1cc0 authored by Michal Kazior's avatar Michal Kazior Committed by Kalle Valo

ath10k: fix possible memory leak in new FW loading

Some failpaths did `return` instead of a `goto`
leaking requested firmware.
Signed-off-by: default avatarMichal Kazior <michal.kazior@tieto.com>
Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
parent fd9c4864
...@@ -404,12 +404,14 @@ static int ath10k_core_fetch_firmware_api_n(struct ath10k *ar, const char *name) ...@@ -404,12 +404,14 @@ static int ath10k_core_fetch_firmware_api_n(struct ath10k *ar, const char *name)
if (len < magic_len) { if (len < magic_len) {
ath10k_err("firmware image too small to contain magic: %zu\n", ath10k_err("firmware image too small to contain magic: %zu\n",
len); len);
return -EINVAL; ret = -EINVAL;
goto err;
} }
if (memcmp(data, ATH10K_FIRMWARE_MAGIC, magic_len) != 0) { if (memcmp(data, ATH10K_FIRMWARE_MAGIC, magic_len) != 0) {
ath10k_err("Invalid firmware magic\n"); ath10k_err("Invalid firmware magic\n");
return -EINVAL; ret = -EINVAL;
goto err;
} }
/* jump over the padding */ /* jump over the padding */
...@@ -431,7 +433,8 @@ static int ath10k_core_fetch_firmware_api_n(struct ath10k *ar, const char *name) ...@@ -431,7 +433,8 @@ static int ath10k_core_fetch_firmware_api_n(struct ath10k *ar, const char *name)
if (len < ie_len) { if (len < ie_len) {
ath10k_err("Invalid length for FW IE %d (%zu < %zu)\n", ath10k_err("Invalid length for FW IE %d (%zu < %zu)\n",
ie_id, len, ie_len); ie_id, len, ie_len);
return -EINVAL; ret = -EINVAL;
goto err;
} }
switch (ie_id) { switch (ie_id) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment