Explorar o código

[PATCH] softmac: check if disassociation is for us before processing it

Signed-off-by: John W. Linville <linville@tuxdriver.com>
Johannes Berg %!s(int64=19) %!d(string=hai) anos
pai
achega
48b2e4ce69
Modificáronse 1 ficheiros con 4 adicións e 1 borrados
  1. 4 1
      net/ieee80211/softmac/ieee80211softmac_assoc.c

+ 4 - 1
net/ieee80211/softmac/ieee80211softmac_assoc.c

@@ -349,7 +349,10 @@ ieee80211softmac_handle_disassoc(struct net_device * dev,
 {
 	struct ieee80211softmac_device *mac = ieee80211_priv(dev);
 	unsigned long flags;
-	/* FIXME: check that this frame is from the right AP!! */
+	if (memcmp(disassoc->header.addr2, mac->associnfo.bssid, ETH_ALEN))
+		return 0;
+	if (memcmp(disassoc->header.addr1, mac->dev->dev_addr, ETH_ALEN))
+		return 0;
 	dprintk(KERN_INFO PFX "got disassoc frame\n");
 	netif_carrier_off(dev);
 	spin_lock_irqsave(&mac->lock, flags);