mirror of
https://github.com/torvalds/linux.git
synced 2024-11-12 07:01:57 +00:00
mac80211: fix suppressing probe responses in ad-hoc mode
The commit "mac80211: reply to directed probes in IBSS" changed ad-hoc specific code to respond to unicast probe requests, even if drv_tx_last_beacon returns false, however due to confusion over the meaning of the IEEE80211_RX_RA_MATCH flag, it also unconditionally enabled responding to multicast probe requests. Fix this by explicitly checking for a multicast destination address instead. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
2638126a7c
commit
1ed76487ce
@ -661,7 +661,6 @@ static void ieee80211_sta_find_ibss(struct ieee80211_sub_if_data *sdata)
|
||||
static void ieee80211_rx_mgmt_probe_req(struct ieee80211_sub_if_data *sdata,
|
||||
struct sk_buff *req)
|
||||
{
|
||||
struct ieee80211_rx_status *rx_status = IEEE80211_SKB_RXCB(req);
|
||||
struct ieee80211_mgmt *mgmt = (void *)req->data;
|
||||
struct ieee80211_if_ibss *ifibss = &sdata->u.ibss;
|
||||
struct ieee80211_local *local = sdata->local;
|
||||
@ -685,7 +684,7 @@ static void ieee80211_rx_mgmt_probe_req(struct ieee80211_sub_if_data *sdata,
|
||||
mgmt->bssid, tx_last_beacon);
|
||||
#endif /* CONFIG_MAC80211_IBSS_DEBUG */
|
||||
|
||||
if (!tx_last_beacon && !(rx_status->rx_flags & IEEE80211_RX_RA_MATCH))
|
||||
if (!tx_last_beacon && is_multicast_ether_addr(mgmt->da))
|
||||
return;
|
||||
|
||||
if (memcmp(mgmt->bssid, ifibss->bssid, ETH_ALEN) != 0 &&
|
||||
|
Loading…
Reference in New Issue
Block a user