summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAjay Singh <ajay.kathat@microchip.com>2022-07-20 19:03:04 +0300
committerKalle Valo <kvalo@kernel.org>2022-07-27 15:58:10 +0300
commit12fb1ae537a416b77ac9cbaefa6dd9dacaa27ed0 (patch)
tree01b9025e8a892171a09f570d9b185755cc60948d
parent33d4a577c7b184bac755deb68fe6e84ae009d70f (diff)
downloadlinux-12fb1ae537a416b77ac9cbaefa6dd9dacaa27ed0.tar.xz
wifi: wilc1000: get correct length of string WID from received config packet
For string type WID packet, the data length is received as 16-bit value so use 'get_unaligned_le16' conversion API to extract the correct length. Signed-off-by: Ajay Singh <ajay.kathat@microchip.com> Signed-off-by: Kalle Valo <kvalo@kernel.org> Link: https://lore.kernel.org/r/20220720160302.231516-5-ajay.kathat@microchip.com
-rw-r--r--drivers/net/wireless/microchip/wilc1000/wlan_cfg.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/net/wireless/microchip/wilc1000/wlan_cfg.c b/drivers/net/wireless/microchip/wilc1000/wlan_cfg.c
index 60eaf62fd164..131388886acb 100644
--- a/drivers/net/wireless/microchip/wilc1000/wlan_cfg.c
+++ b/drivers/net/wireless/microchip/wilc1000/wlan_cfg.c
@@ -181,9 +181,10 @@ static void wilc_wlan_parse_response_frame(struct wilc *wl, u8 *info, int size)
i++;
if (cfg->s[i].id == wid)
- memcpy(cfg->s[i].str, &info[2], info[2] + 2);
+ memcpy(cfg->s[i].str, &info[2],
+ get_unaligned_le16(&info[2]) + 2);
- len = 2 + info[2];
+ len = 2 + get_unaligned_le16(&info[2]);
break;
default: