| From ca45949b720507c92b2cdc34538858554729276b Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Fri, 27 Aug 2021 22:42:30 +0800 |
| Subject: mac80211: Drop frames from invalid MAC address in ad-hoc mode |
| |
| From: YueHaibing <yuehaibing@huawei.com> |
| |
| [ Upstream commit a6555f844549cd190eb060daef595f94d3de1582 ] |
| |
| WARNING: CPU: 1 PID: 9 at net/mac80211/sta_info.c:554 |
| sta_info_insert_rcu+0x121/0x12a0 |
| Modules linked in: |
| CPU: 1 PID: 9 Comm: kworker/u8:1 Not tainted 5.14.0-rc7+ #253 |
| Workqueue: phy3 ieee80211_iface_work |
| RIP: 0010:sta_info_insert_rcu+0x121/0x12a0 |
| ... |
| Call Trace: |
| ieee80211_ibss_finish_sta+0xbc/0x170 |
| ieee80211_ibss_work+0x13f/0x7d0 |
| ieee80211_iface_work+0x37a/0x500 |
| process_one_work+0x357/0x850 |
| worker_thread+0x41/0x4d0 |
| |
| If an Ad-Hoc node receives packets with invalid source MAC address, |
| it hits a WARN_ON in sta_info_insert_check(), this can spam the log. |
| |
| Signed-off-by: YueHaibing <yuehaibing@huawei.com> |
| Link: https://lore.kernel.org/r/20210827144230.39944-1-yuehaibing@huawei.com |
| Signed-off-by: Johannes Berg <johannes.berg@intel.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| net/mac80211/rx.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c |
| index 38b5695c2a0c..b7979c0bffd0 100644 |
| --- a/net/mac80211/rx.c |
| +++ b/net/mac80211/rx.c |
| @@ -4064,7 +4064,8 @@ static bool ieee80211_accept_frame(struct ieee80211_rx_data *rx) |
| if (!bssid) |
| return false; |
| if (ether_addr_equal(sdata->vif.addr, hdr->addr2) || |
| - ether_addr_equal(sdata->u.ibss.bssid, hdr->addr2)) |
| + ether_addr_equal(sdata->u.ibss.bssid, hdr->addr2) || |
| + !is_valid_ether_addr(hdr->addr2)) |
| return false; |
| if (ieee80211_is_beacon(hdr->frame_control)) |
| return true; |
| -- |
| 2.33.0 |
| |