mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2024-11-22 06:29:23 +01:00
ft: remove frame type check in FT
A user reported that IWD was failing to FT in some cases and this was due to the AP setting the Retry bit in the frame type. This was unexpected by IWD since it directly checks the frame type against 0x00b0 which does not account for any B8-B15 bits being set. IWD doesn't need to verify the frame type field for a few reasons: First mpdu_validate checks the management frame type, Second the kernel checks prior to forwarding the event. Because of this the check was removed completely. Reported-By: Michael Johnson <mjohnson459@gmail.com>
This commit is contained in:
parent
ce227e7b94
commit
7104e12667
5
src/ft.c
5
src/ft.c
@ -122,16 +122,11 @@ static bool ft_parse_authentication_resp_frame(const uint8_t *data, size_t len,
|
|||||||
uint16_t *out_status, const uint8_t **out_ies,
|
uint16_t *out_status, const uint8_t **out_ies,
|
||||||
size_t *out_ies_len)
|
size_t *out_ies_len)
|
||||||
{
|
{
|
||||||
const uint16_t frame_type = 0x00b0;
|
|
||||||
uint16_t status = 0;
|
uint16_t status = 0;
|
||||||
|
|
||||||
if (len < 30)
|
if (len < 30)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
/* Check FC == Management Frame -> Authentication */
|
|
||||||
if (l_get_le16(data + 0) != frame_type)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (memcmp(data + 4, addr1, 6))
|
if (memcmp(data + 4, addr1, 6))
|
||||||
return false;
|
return false;
|
||||||
if (memcmp(data + 10, addr2, 6))
|
if (memcmp(data + 10, addr2, 6))
|
||||||
|
Loading…
Reference in New Issue
Block a user