diff options
Diffstat (limited to 'drivers/staging/rtl8712/rtl871x_security.c')
-rw-r--r-- | drivers/staging/rtl8712/rtl871x_security.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/staging/rtl8712/rtl871x_security.c b/drivers/staging/rtl8712/rtl871x_security.c index aae5125a2e7e..5ffc489e9501 100644 --- a/drivers/staging/rtl8712/rtl871x_security.c +++ b/drivers/staging/rtl8712/rtl871x_security.c @@ -1244,17 +1244,18 @@ static sint aes_decipher(u8 *key, uint hdrlen, (frtype == WIFI_DATA_CFPOLL) || (frtype == WIFI_DATA_CFACKPOLL)) { qc_exists = 1; - if (hdrlen != WLAN_HDR_A3_QOS_LEN) + if (hdrlen != WLAN_HDR_A3_QOS_LEN) hdrlen += 2; - } else if ((frsubtype == 0x08) || + } else if ((frsubtype == 0x08) || (frsubtype == 0x09) || (frsubtype == 0x0a) || (frsubtype == 0x0b)) { - if (hdrlen != WLAN_HDR_A3_QOS_LEN) - hdrlen += 2; - qc_exists = 1; - } else + if (hdrlen != WLAN_HDR_A3_QOS_LEN) + hdrlen += 2; + qc_exists = 1; + } else { qc_exists = 0; + } /* now, decrypt pframe with hdrlen offset and plen long */ payload_index = hdrlen + 8; /* 8 is for extiv */ for (i = 0; i < num_blocks; i++) { |