ath6kl: Fix possible unaligned memory access in ath6kl_get_rsn_capab()
authorVasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Tue, 10 Apr 2012 08:05:47 +0000 (13:35 +0530)
committerKalle Valo <kvalo@qca.qualcomm.com>
Thu, 12 Apr 2012 07:35:03 +0000 (10:35 +0300)
alignment is not taken care in accessing pairwise cipher and AKM suite
count which are parsed from rsn ie. Fix this alignment issue.

Reported-by: Joe Perches <joe@perches.com>
Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/ath6kl/cfg80211.c

index 6ea5ae54c160af2e7b592af4d7cb8c4f7c0b31ee..6b6bf938feef0166084c18f47678e587f205b57d 100644 (file)
@@ -2591,14 +2591,14 @@ static int ath6kl_get_rsn_capab(struct cfg80211_beacon_data *beacon,
        /* skip pairwise cipher suite */
        if (rsn_ie_len < 2)
                return -EINVAL;
-       cnt = *((u16 *) rsn_ie);
+       cnt = get_unaligned_le16(rsn_ie);
        rsn_ie += (2 + cnt * 4);
        rsn_ie_len -= (2 + cnt * 4);
 
        /* skip akm suite */
        if (rsn_ie_len < 2)
                return -EINVAL;
-       cnt = *((u16 *) rsn_ie);
+       cnt = get_unaligned_le16(rsn_ie);
        rsn_ie += (2 + cnt * 4);
        rsn_ie_len -= (2 + cnt * 4);