ath10k: add sanity check to ie_len before parsing fw/board ie
PATCH 1/1 ath10k: add sanity check to ie_len before parsing fw/board ie
From: Ryan Hsu <[email protected]>
Validate ie_len after the alignment padding before access the buffer to avoid potential overflow.
Signed-off-by Ryan Hsu <[email protected]>
--- drivers/net/wireless/ath/ath10k/core.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-)
drivers/net/wireless/ath/ath10k/core.c +7 -6
@@ -1276,7 +1276,10 @@ static int ath10k_core_fetch_board_data_api_n(struct ath10k *ar, len -=sizeof (*hdr); data = hdr->data; -if (len <ALIGN (ie_len,4 )) { +/* jump over the padding */ + ie_len =ALIGN (ie_len,4 ); + +if (len < ie_len) {ath10k_err (ar,"invalid length for board ie_id %d ie_len %zu len %zu\n" , ie_id, ie_len, len); ret = -EINVAL ;
@@ -1315,8 +1318,6 @@ static int ath10k_core_fetch_board_data_api_n(struct ath10k *ar, goto out; } -/* jump over the padding */ - ie_len =ALIGN (ie_len,4 ); len -= ie_len; data += ie_len;
@@ -1448,6 +1449,9 @@ int ath10k_core_fetch_firmware_api_n(struct ath10k *ar, const char *name, len -=sizeof (*hdr); data +=sizeof (*hdr); +/* jump over the padding */ + ie_len =ALIGN (ie_len,4 ); +if (len < ie_len) {ath10k_err (ar,"invalid length for FW IE %d (%zu < %zu)\n" , ie_id, len, ie_len);
@@ -1553,9 +1557,6 @@ int ath10k_core_fetch_firmware_api_n(struct ath10k *ar, const char *name,break ; } -/* jump over the padding */ - ie_len =ALIGN (ie_len,4 ); - len -= ie_len; data += ie_len; }
Signature · 1 line
1.9.1
Quoted 5 lines · [email protected] wrote:
Validate
ie_lenafter the alignment padding before access the buffer to avoid potential overflow.Signed-off-by Ryan Hsu <[email protected]>Signed-off-by Kalle Valo <[email protected]>
Patch applied to ath-next branch of ath.git, thanks.
9ed4f9162873 ath10k: add sanity check to ie_len before parsing fw/board ie
Signature · 3 lines
https://patchwork.kernel.org/patch/10150769/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
Quoted 5 lines · [email protected] wrote:
Validate
ie_lenafter the alignment padding before access the buffer to avoid potential overflow.Signed-off-by Ryan Hsu <[email protected]>Signed-off-by Kalle Valo <[email protected]>
Patch applied to ath-next branch of ath.git, thanks.
9ed4f9162873 ath10k: add sanity check to ie_len before parsing fw/board ie
Signature · 9 lines
https://patchwork.kernel.org/patch/10150769/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches _______________________________________________ ath10k mailing list [email protected] http://lists.infradead.org/mailman/listinfo/ath10k