diff options
Diffstat (limited to 'net/mac80211/wpa.c')
-rw-r--r-- | net/mac80211/wpa.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/net/mac80211/wpa.c b/net/mac80211/wpa.c index 6e12638054aa..360d11e9de15 100644 --- a/net/mac80211/wpa.c +++ b/net/mac80211/wpa.c | |||
@@ -132,6 +132,7 @@ ieee80211_rx_h_michael_mic_verify(struct ieee80211_txrx_data *rx) | |||
132 | u8 mic[MICHAEL_MIC_LEN]; | 132 | u8 mic[MICHAEL_MIC_LEN]; |
133 | struct sk_buff *skb = rx->skb; | 133 | struct sk_buff *skb = rx->skb; |
134 | int authenticator = 1, wpa_test = 0; | 134 | int authenticator = 1, wpa_test = 0; |
135 | DECLARE_MAC_BUF(mac); | ||
135 | 136 | ||
136 | fc = rx->fc; | 137 | fc = rx->fc; |
137 | 138 | ||
@@ -164,7 +165,7 @@ ieee80211_rx_h_michael_mic_verify(struct ieee80211_txrx_data *rx) | |||
164 | return TXRX_DROP; | 165 | return TXRX_DROP; |
165 | 166 | ||
166 | printk(KERN_DEBUG "%s: invalid Michael MIC in data frame from " | 167 | printk(KERN_DEBUG "%s: invalid Michael MIC in data frame from " |
167 | MAC_FMT "\n", rx->dev->name, MAC_ARG(sa)); | 168 | "%s\n", rx->dev->name, print_mac(mac, sa)); |
168 | 169 | ||
169 | mac80211_ev_michael_mic_failure(rx->dev, rx->key->conf.keyidx, | 170 | mac80211_ev_michael_mic_failure(rx->dev, rx->key->conf.keyidx, |
170 | (void *) skb->data); | 171 | (void *) skb->data); |
@@ -287,6 +288,7 @@ ieee80211_rx_h_tkip_decrypt(struct ieee80211_txrx_data *rx) | |||
287 | int hdrlen, res, hwaccel = 0, wpa_test = 0; | 288 | int hdrlen, res, hwaccel = 0, wpa_test = 0; |
288 | struct ieee80211_key *key = rx->key; | 289 | struct ieee80211_key *key = rx->key; |
289 | struct sk_buff *skb = rx->skb; | 290 | struct sk_buff *skb = rx->skb; |
291 | DECLARE_MAC_BUF(mac); | ||
290 | 292 | ||
291 | fc = le16_to_cpu(hdr->frame_control); | 293 | fc = le16_to_cpu(hdr->frame_control); |
292 | hdrlen = ieee80211_get_hdrlen(fc); | 294 | hdrlen = ieee80211_get_hdrlen(fc); |
@@ -319,8 +321,8 @@ ieee80211_rx_h_tkip_decrypt(struct ieee80211_txrx_data *rx) | |||
319 | hwaccel, rx->u.rx.queue); | 321 | hwaccel, rx->u.rx.queue); |
320 | if (res != TKIP_DECRYPT_OK || wpa_test) { | 322 | if (res != TKIP_DECRYPT_OK || wpa_test) { |
321 | printk(KERN_DEBUG "%s: TKIP decrypt failed for RX frame from " | 323 | printk(KERN_DEBUG "%s: TKIP decrypt failed for RX frame from " |
322 | MAC_FMT " (res=%d)\n", | 324 | "%s (res=%d)\n", |
323 | rx->dev->name, MAC_ARG(rx->sta->addr), res); | 325 | rx->dev->name, print_mac(mac, rx->sta->addr), res); |
324 | return TXRX_DROP; | 326 | return TXRX_DROP; |
325 | } | 327 | } |
326 | 328 | ||
@@ -542,6 +544,7 @@ ieee80211_rx_h_ccmp_decrypt(struct ieee80211_txrx_data *rx) | |||
542 | struct sk_buff *skb = rx->skb; | 544 | struct sk_buff *skb = rx->skb; |
543 | u8 pn[CCMP_PN_LEN]; | 545 | u8 pn[CCMP_PN_LEN]; |
544 | int data_len; | 546 | int data_len; |
547 | DECLARE_MAC_BUF(mac); | ||
545 | 548 | ||
546 | fc = le16_to_cpu(hdr->frame_control); | 549 | fc = le16_to_cpu(hdr->frame_control); |
547 | hdrlen = ieee80211_get_hdrlen(fc); | 550 | hdrlen = ieee80211_get_hdrlen(fc); |
@@ -564,10 +567,11 @@ ieee80211_rx_h_ccmp_decrypt(struct ieee80211_txrx_data *rx) | |||
564 | if (memcmp(pn, key->u.ccmp.rx_pn[rx->u.rx.queue], CCMP_PN_LEN) <= 0) { | 567 | if (memcmp(pn, key->u.ccmp.rx_pn[rx->u.rx.queue], CCMP_PN_LEN) <= 0) { |
565 | #ifdef CONFIG_MAC80211_DEBUG | 568 | #ifdef CONFIG_MAC80211_DEBUG |
566 | u8 *ppn = key->u.ccmp.rx_pn[rx->u.rx.queue]; | 569 | u8 *ppn = key->u.ccmp.rx_pn[rx->u.rx.queue]; |
570 | |||
567 | printk(KERN_DEBUG "%s: CCMP replay detected for RX frame from " | 571 | printk(KERN_DEBUG "%s: CCMP replay detected for RX frame from " |
568 | MAC_FMT " (RX PN %02x%02x%02x%02x%02x%02x <= prev. PN " | 572 | "%s (RX PN %02x%02x%02x%02x%02x%02x <= prev. PN " |
569 | "%02x%02x%02x%02x%02x%02x)\n", rx->dev->name, | 573 | "%02x%02x%02x%02x%02x%02x)\n", rx->dev->name, |
570 | MAC_ARG(rx->sta->addr), | 574 | print_mac(mac, rx->sta->addr), |
571 | pn[0], pn[1], pn[2], pn[3], pn[4], pn[5], | 575 | pn[0], pn[1], pn[2], pn[3], pn[4], pn[5], |
572 | ppn[0], ppn[1], ppn[2], ppn[3], ppn[4], ppn[5]); | 576 | ppn[0], ppn[1], ppn[2], ppn[3], ppn[4], ppn[5]); |
573 | #endif /* CONFIG_MAC80211_DEBUG */ | 577 | #endif /* CONFIG_MAC80211_DEBUG */ |
@@ -591,8 +595,8 @@ ieee80211_rx_h_ccmp_decrypt(struct ieee80211_txrx_data *rx) | |||
591 | skb->data + skb->len - CCMP_MIC_LEN, | 595 | skb->data + skb->len - CCMP_MIC_LEN, |
592 | skb->data + hdrlen + CCMP_HDR_LEN)) { | 596 | skb->data + hdrlen + CCMP_HDR_LEN)) { |
593 | printk(KERN_DEBUG "%s: CCMP decrypt failed for RX " | 597 | printk(KERN_DEBUG "%s: CCMP decrypt failed for RX " |
594 | "frame from " MAC_FMT "\n", rx->dev->name, | 598 | "frame from %s\n", rx->dev->name, |
595 | MAC_ARG(rx->sta->addr)); | 599 | print_mac(mac, rx->sta->addr)); |
596 | return TXRX_DROP; | 600 | return TXRX_DROP; |
597 | } | 601 | } |
598 | } | 602 | } |
@@ -606,4 +610,3 @@ ieee80211_rx_h_ccmp_decrypt(struct ieee80211_txrx_data *rx) | |||
606 | 610 | ||
607 | return TXRX_CONTINUE; | 611 | return TXRX_CONTINUE; |
608 | } | 612 | } |
609 | |||