wifi: mac80211: do not pass a stopped vif to the driver in .get_txpower
authorFelix Fietkau <nbd@nbd.name>
Wed, 2 Oct 2024 09:56:30 +0000 (11:56 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 8 Nov 2024 15:28:23 +0000 (16:28 +0100)
commit 393b6bc174b0dd21bb2a36c13b36e62fc3474a23 upstream.

Avoid potentially crashing in the driver because of uninitialized private data

Fixes: 5b3dc42b1b0d ("mac80211: add support for driver tx power reporting")
Cc: stable@vger.kernel.org
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Link: https://patch.msgid.link/20241002095630.22431-1-nbd@nbd.name
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/mac80211/cfg.c

index ca5b111f20e5bd9886447007a1f5488974e60ccc..3da30c991de8a6e7b084184d68a1e53debd130ed 100644 (file)
@@ -3115,7 +3115,8 @@ static int ieee80211_get_tx_power(struct wiphy *wiphy,
        struct ieee80211_local *local = wiphy_priv(wiphy);
        struct ieee80211_sub_if_data *sdata = IEEE80211_WDEV_TO_SUB_IF(wdev);
 
-       if (local->ops->get_txpower)
+       if (local->ops->get_txpower &&
+           (sdata->flags & IEEE80211_SDATA_IN_DRIVER))
                return drv_get_txpower(local, sdata, dbm);
 
        if (!local->use_chanctx)