wifi: avoid offset calculation on NULL pointer
authorMichael-CY Lee <michael-cy.lee@mediatek.com>
Wed, 22 Nov 2023 03:02:37 +0000 (11:02 +0800)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 24 Nov 2023 17:37:34 +0000 (18:37 +0100)
ieee80211_he_6ghz_oper() can be passed a NULL pointer
and checks for that, but already did the calculation
to inside of it before. Move it after the check.

Signed-off-by: Michael-CY Lee <michael-cy.lee@mediatek.com>
Link: https://lore.kernel.org/r/20231122030237.31276-1-michael-cy.lee@mediatek.com
[rewrite commit message]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
include/linux/ieee80211.h

index 958771bac9c0295f2a7ee57f56cac436933626fd..c2ac9e9e7ee9a8bc80ebaa6465875418bdabe397 100644 (file)
@@ -2830,12 +2830,14 @@ ieee80211_he_oper_size(const u8 *he_oper_ie)
 static inline const struct ieee80211_he_6ghz_oper *
 ieee80211_he_6ghz_oper(const struct ieee80211_he_operation *he_oper)
 {
-       const u8 *ret = (const void *)&he_oper->optional;
+       const u8 *ret;
        u32 he_oper_params;
 
        if (!he_oper)
                return NULL;
 
+       ret = (const void *)&he_oper->optional;
+
        he_oper_params = le32_to_cpu(he_oper->he_oper_params);
 
        if (!(he_oper_params & IEEE80211_HE_OPERATION_6GHZ_OP_INFO))