| From 15b2424ce39279195fc38b41da6b898cd0ceadf7 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 22 Nov 2023 11:02:37 +0800 |
| Subject: wifi: avoid offset calculation on NULL pointer |
| |
| From: Michael-CY Lee <michael-cy.lee@mediatek.com> |
| |
| [ Upstream commit ef5828805842204dd0259ecfc132b5916c8a77ae ] |
| |
| 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> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| include/linux/ieee80211.h | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h |
| index 2b0a73cb7cbb..2fa186258e35 100644 |
| --- a/include/linux/ieee80211.h |
| +++ b/include/linux/ieee80211.h |
| @@ -2790,12 +2790,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)) |
| -- |
| 2.43.0 |
| |