mac80211: check vif pointer before airtime calculation
authorJohannes Berg <johannes.berg@intel.com>
Fri, 21 Feb 2020 09:45:45 +0000 (10:45 +0100)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 21 Feb 2020 11:11:39 +0000 (12:11 +0100)
In case of monitor mode injection, vif may be NULL, don't crash
on that in ieee80211_calc_expected_tx_airtime().

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Acked-by: Toke Høiland-Jørgensen <toke@redhat.com>
Link: https://lore.kernel.org/r/20200221104544.dddb7a3568fd.I0ede2733a3c76e95daeab07538449ea847e7b78d@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/tx.c

index 38f20a370f2a873033800830a55c0ac3cd87969c..8dd93072f6e6a27608bea944e2f005f49ebd627f 100644 (file)
@@ -5,7 +5,7 @@
  * Copyright 2006-2007 Jiri Benc <jbenc@suse.cz>
  * Copyright 2007      Johannes Berg <johannes@sipsolutions.net>
  * Copyright 2013-2014  Intel Mobile Communications GmbH
- * Copyright (C) 2018 Intel Corporation
+ * Copyright (C) 2018-2020 Intel Corporation
  *
  * Transmit and frame generation functions.
  */
@@ -3682,7 +3682,8 @@ begin:
 encap_out:
        IEEE80211_SKB_CB(skb)->control.vif = vif;
 
-       if (wiphy_ext_feature_isset(local->hw.wiphy, NL80211_EXT_FEATURE_AQL)) {
+       if (vif &&
+           wiphy_ext_feature_isset(local->hw.wiphy, NL80211_EXT_FEATURE_AQL)) {
                u32 airtime;
 
                airtime = ieee80211_calc_expected_tx_airtime(hw, vif, txq->sta,