|
@@ -2247,6 +2247,10 @@ ieee80211_rx_h_mgmt(struct ieee80211_rx_data *rx)
|
|
break;
|
|
break;
|
|
case cpu_to_le16(IEEE80211_STYPE_DEAUTH):
|
|
case cpu_to_le16(IEEE80211_STYPE_DEAUTH):
|
|
case cpu_to_le16(IEEE80211_STYPE_DISASSOC):
|
|
case cpu_to_le16(IEEE80211_STYPE_DISASSOC):
|
|
|
|
+ if (is_multicast_ether_addr(mgmt->da) &&
|
|
|
|
+ !is_broadcast_ether_addr(mgmt->da))
|
|
|
|
+ return RX_DROP_MONITOR;
|
|
|
|
+
|
|
/* process only for station */
|
|
/* process only for station */
|
|
if (sdata->vif.type != NL80211_IFTYPE_STATION)
|
|
if (sdata->vif.type != NL80211_IFTYPE_STATION)
|
|
return RX_DROP_MONITOR;
|
|
return RX_DROP_MONITOR;
|