diff options
author | Ajay Singh <ajay.kathat@microchip.com> | 2022-07-20 16:03:04 +0000 |
---|---|---|
committer | Kalle Valo <kvalo@kernel.org> | 2022-07-27 15:58:10 +0300 |
commit | 12fb1ae537a416b77ac9cbaefa6dd9dacaa27ed0 (patch) | |
tree | 01b9025e8a892171a09f570d9b185755cc60948d /drivers/net/wireless/microchip/wilc1000 | |
parent | 33d4a577c7b184bac755deb68fe6e84ae009d70f (diff) |
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
Diffstat (limited to 'drivers/net/wireless/microchip/wilc1000')
-rw-r--r-- | drivers/net/wireless/microchip/wilc1000/wlan_cfg.c | 5 |
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: |