aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/wpa.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac80211/wpa.c')
-rw-r--r--net/mac80211/wpa.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/net/mac80211/wpa.c b/net/mac80211/wpa.c
index 360d11e9de15..108fe3e81e24 100644
--- a/net/mac80211/wpa.c
+++ b/net/mac80211/wpa.c
@@ -281,7 +281,7 @@ ieee80211_tx_h_tkip_encrypt(struct ieee80211_txrx_data *tx)
281 281
282 282
283ieee80211_txrx_result 283ieee80211_txrx_result
284ieee80211_rx_h_tkip_decrypt(struct ieee80211_txrx_data *rx) 284ieee80211_crypto_tkip_decrypt(struct ieee80211_txrx_data *rx)
285{ 285{
286 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) rx->skb->data; 286 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) rx->skb->data;
287 u16 fc; 287 u16 fc;
@@ -293,9 +293,7 @@ ieee80211_rx_h_tkip_decrypt(struct ieee80211_txrx_data *rx)
293 fc = le16_to_cpu(hdr->frame_control); 293 fc = le16_to_cpu(hdr->frame_control);
294 hdrlen = ieee80211_get_hdrlen(fc); 294 hdrlen = ieee80211_get_hdrlen(fc);
295 295
296 if (!rx->key || rx->key->conf.alg != ALG_TKIP || 296 if ((rx->fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_DATA)
297 !(rx->fc & IEEE80211_FCTL_PROTECTED) ||
298 (rx->fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_DATA)
299 return TXRX_CONTINUE; 297 return TXRX_CONTINUE;
300 298
301 if (!rx->sta || skb->len - hdrlen < 12) 299 if (!rx->sta || skb->len - hdrlen < 12)
@@ -535,7 +533,7 @@ ieee80211_tx_h_ccmp_encrypt(struct ieee80211_txrx_data *tx)
535 533
536 534
537ieee80211_txrx_result 535ieee80211_txrx_result
538ieee80211_rx_h_ccmp_decrypt(struct ieee80211_txrx_data *rx) 536ieee80211_crypto_ccmp_decrypt(struct ieee80211_txrx_data *rx)
539{ 537{
540 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) rx->skb->data; 538 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) rx->skb->data;
541 u16 fc; 539 u16 fc;
@@ -549,9 +547,7 @@ ieee80211_rx_h_ccmp_decrypt(struct ieee80211_txrx_data *rx)
549 fc = le16_to_cpu(hdr->frame_control); 547 fc = le16_to_cpu(hdr->frame_control);
550 hdrlen = ieee80211_get_hdrlen(fc); 548 hdrlen = ieee80211_get_hdrlen(fc);
551 549
552 if (!key || key->conf.alg != ALG_CCMP || 550 if ((rx->fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_DATA)
553 !(rx->fc & IEEE80211_FCTL_PROTECTED) ||
554 (rx->fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_DATA)
555 return TXRX_CONTINUE; 551 return TXRX_CONTINUE;
556 552
557 data_len = skb->len - hdrlen - CCMP_HDR_LEN - CCMP_MIC_LEN; 553 data_len = skb->len - hdrlen - CCMP_HDR_LEN - CCMP_MIC_LEN;