]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
wifi: ieee80211: fix ieee80211_mle_basic_sta_prof_size_ok()
authorJohannes Berg <johannes.berg@intel.com>
Mon, 18 Mar 2024 16:53:18 +0000 (18:53 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 30 May 2024 07:49:05 +0000 (09:49 +0200)
[ Upstream commit c121514df0daa800cc500dc2738e0b8a1c54af98 ]

If there was a possibility of an MLE basic STA profile without
subelements, we might reject it because we account for the one
octet for sta_info_len twice (it's part of itself, and in the
fixed portion). Like in ieee80211_mle_reconf_sta_prof_size_ok,
subtract 1 to adjust that.

When reading the elements we did take this into account, and
since there are always elements, this never really mattered.

Fixes: 7b6f08771bf6 ("wifi: ieee80211: Support validating ML station profile length")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Reviewed-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240318184907.00bb0b20ed60.I8c41dd6fc14c4b187ab901dea15ade73c79fb98c@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
include/linux/ieee80211.h

index 83c4d060a559631ff6e1c6e45e1cedfad8256405..b69771a2e4e74c65ab787780917af0661db56666 100644 (file)
@@ -5145,7 +5145,7 @@ static inline bool ieee80211_mle_basic_sta_prof_size_ok(const u8 *data,
                info_len += 1;
 
        return prof->sta_info_len >= info_len &&
-              fixed + prof->sta_info_len <= len;
+              fixed + prof->sta_info_len - 1 <= len;
 }
 
 /**