wlan-ap-Telecominfraproject/feeds/wifi-ax/mac80211/patches/qca/209-mac80211-Fix-crash-caused-by-uninitialized-MBSSID-list.patch
John Crispin 54939fdb0f mac80211-ax: update to ath11k-ed2 release
Signed-off-by: John Crispin <john@phrozen.org>
2020-12-02 09:48:18 +01:00

47 lines
1.6 KiB
Diff

From 68047a1e20efba832c4717c4b5c744cdd0d1a304 Mon Sep 17 00:00:00 2001
From: Aloka Dixit <alokad@codeaurora.org>
Date: Wed, 16 Sep 2020 22:33:27 -0700
Subject: [PATCH] mac80211: Fix crash caused by uninitialized MBSSID list
When /etc/config/wireless file is used, the first created interface of
type 'AP' is always set as the transmitting interface and a list is
initialized to store pointers to all non-transmitting interfaces
belonging to the same multiple BSSID set.
However, when hostapd is started manually, this code path does not get
executed. When first non-transmitting interface is getting created, it
results in a crash due to non-initialized list head.
This patch fixes this crash by moving the initialization to function
ieee80211_if_add() for all types of interfaces.
Signed-off-by: Aloka Dixit <alokad@codeaurora.org>
---
net/mac80211/cfg.c | 3 ---
net/mac80211/iface.c | 1 +
2 files changed, 1 insertion(+), 3 deletions(-)
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -134,10 +134,7 @@ static int ieee80211_set_multiple_bssid_
list_add(&sdata->vif.multiple_bssid.list,
&psdata->vif.multiple_bssid.list);
sdata->vif.multiple_bssid.non_transmitted = true;
- } else {
- INIT_LIST_HEAD(&sdata->vif.multiple_bssid.list);
}
-
return 0;
}
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -2032,6 +2032,7 @@ int ieee80211_if_add(struct ieee80211_lo
skb_queue_head_init(&sdata->fragments[i].skb_list);
INIT_LIST_HEAD(&sdata->key_list);
+ INIT_LIST_HEAD(&sdata->vif.multiple_bssid.list);
INIT_DELAYED_WORK(&sdata->dfs_cac_timer_work,
ieee80211_dfs_cac_timer_work);