| From 0cefbc2ff0769c7a203f18732ccada715b45d32e Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 20 Sep 2021 15:40:05 +0200 |
| Subject: mac80211: mesh: fix potentially unaligned access |
| |
| From: Johannes Berg <johannes.berg@intel.com> |
| |
| [ Upstream commit b9731062ce8afd35cf723bf3a8ad55d208f915a5 ] |
| |
| The pointer here points directly into the frame, so the |
| access is potentially unaligned. Use get_unaligned_le16 |
| to avoid that. |
| |
| Fixes: 3f52b7e328c5 ("mac80211: mesh power save basics") |
| Link: https://lore.kernel.org/r/20210920154009.3110ff75be0c.Ib6a2ff9e9cc9bc6fca50fce631ec1ce725cc926b@changeid |
| Signed-off-by: Johannes Berg <johannes.berg@intel.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| net/mac80211/mesh_ps.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| diff --git a/net/mac80211/mesh_ps.c b/net/mac80211/mesh_ps.c |
| index 204830a55240..3fbd0b9ff913 100644 |
| --- a/net/mac80211/mesh_ps.c |
| +++ b/net/mac80211/mesh_ps.c |
| @@ -2,6 +2,7 @@ |
| /* |
| * Copyright 2012-2013, Marco Porsch <marco.porsch@s2005.tu-chemnitz.de> |
| * Copyright 2012-2013, cozybit Inc. |
| + * Copyright (C) 2021 Intel Corporation |
| */ |
| |
| #include "mesh.h" |
| @@ -588,7 +589,7 @@ void ieee80211_mps_frame_release(struct sta_info *sta, |
| |
| /* only transmit to PS STA with announced, non-zero awake window */ |
| if (test_sta_flag(sta, WLAN_STA_PS_STA) && |
| - (!elems->awake_window || !le16_to_cpu(*elems->awake_window))) |
| + (!elems->awake_window || !get_unaligned_le16(elems->awake_window))) |
| return; |
| |
| if (!test_sta_flag(sta, WLAN_STA_MPSP_OWNER)) |
| -- |
| 2.33.0 |
| |