ath9k: validate for non-zero BSSID
authorMohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
Wed, 7 Dec 2011 11:21:38 +0000 (16:51 +0530)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 16 Dec 2011 14:27:56 +0000 (09:27 -0500)
before concluding that the recieved beacon is for us, let us make sure
that the BSSID is non-zero. when I configured ad-hoc mode as creator and
left it for some time without joining I found we recieved few frames whose
BSSID is zero, which we concluded wrongly as 'my_beacons'

Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/recv.c

index e0318415c2a0099575c03c77d712cc99e07f6774..ad5176de07dc93dc65dc83f52487e8c448de36f3 100644 (file)
@@ -1823,6 +1823,7 @@ int ath_rx_tasklet(struct ath_softc *sc, int flush, bool hp)
                hdr = (struct ieee80211_hdr *) (hdr_skb->data + rx_status_len);
                rxs = IEEE80211_SKB_RXCB(hdr_skb);
                if (ieee80211_is_beacon(hdr->frame_control) &&
+                   !is_zero_ether_addr(common->curbssid) &&
                    !compare_ether_addr(hdr->addr3, common->curbssid))
                        rs.is_mybeacon = true;
                else