QoS header processing mangled unencrypted WMM frames on software
retry. The QoS data needs to be removed even when encryption key is
not configured.
Signed-off-by: Jouni Malinen <[EMAIL PROTECTED]>
Index: wireless-dev/net/d80211/ieee80211.c
===================================================================
--- wireless-dev.orig/net/d80211/ieee80211.c
+++ wireless-dev/net/d80211/ieee80211.c
@@ -3977,11 +3977,11 @@ static void ieee80211_remove_tx_extra(st
pkt_data->requeue = control->requeue;
pkt_data->queue = control->queue;
- if (key == NULL)
- return;
-
hdrlen = ieee80211_get_hdrlen_from_skb(skb);
+ if (key == NULL)
+ goto no_key;
+
switch (key->alg) {
case ALG_WEP:
iv_len = WEP_IV_LEN;
@@ -3996,7 +3996,7 @@ static void ieee80211_remove_tx_extra(st
mic_len = CCMP_MIC_LEN;
break;
default:
- return;
+ goto no_key;
}
if (skb->len >= mic_len && key->force_sw_encrypt)
@@ -4006,6 +4006,7 @@ static void ieee80211_remove_tx_extra(st
skb_pull(skb, iv_len);
}
+no_key:
{
struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data;
u16 fc = le16_to_cpu(hdr->frame_control);
--
--
Jouni Malinen PGP id EFC895FA
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html