From: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx> Date: Wed, 19 Apr 2023 19:19:34 +0200 The address of a data structure member was determined before a corresponding null pointer check in the implementation of the function “iwl_sta_calc_ht_flags”. Thus avoid the risk for undefined behaviour by moving the assignment for the variable “sta_ht_inf” behind the null pointer check. This issue was detected by using the Coccinelle software. Fixes: 046d2e7c50e3 ("mac80211: prepare sta handling for MLO support") Signed-off-by: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx> --- drivers/net/wireless/intel/iwlwifi/dvm/sta.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/dvm/sta.c b/drivers/net/wireless/intel/iwlwifi/dvm/sta.c index cef43cf80620..74814ce0155e 100644 --- a/drivers/net/wireless/intel/iwlwifi/dvm/sta.c +++ b/drivers/net/wireless/intel/iwlwifi/dvm/sta.c @@ -147,7 +147,7 @@ static void iwl_sta_calc_ht_flags(struct iwl_priv *priv, struct iwl_rxon_context *ctx, __le32 *flags, __le32 *mask) { - struct ieee80211_sta_ht_cap *sta_ht_inf = &sta->deflink.ht_cap; + struct ieee80211_sta_ht_cap *sta_ht_inf; *mask = STA_FLG_RTS_MIMO_PROT_MSK | STA_FLG_MIMO_DIS_MSK | @@ -156,7 +156,11 @@ static void iwl_sta_calc_ht_flags(struct iwl_priv *priv, STA_FLG_AGG_MPDU_DENSITY_MSK; *flags = 0; - if (!sta || !sta_ht_inf->ht_supported) + if (!sta) + return; + + sta_ht_inf = &sta->deflink.ht_cap; + if (!sta_ht_inf->ht_supported) return; IWL_DEBUG_INFO(priv, "STA %pM SM PS mode: %s\n", -- 2.40.0