mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 10:31:46 +09:00
wifi: mac80211: ensure beacon is non-S1G prior to extracting the beacon timestamp field
[ Upstream commit d12b9779cc9ba29d65fbfc728eb8a037871dd331 ] Logic inside ieee80211_rx_mgmt_beacon accesses the mgmt->u.beacon.timestamp field without first checking whether the beacon received is non-S1G format. Fix the problem by checking the beacon is non-S1G format to avoid access of the mgmt->u.beacon.timestamp field. Signed-off-by: Richard Kinder <richard.kinder@gmail.com> Link: https://msgid.link/20240328005725.85355-1-richard.kinder@gmail.com Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
79b1584879
commit
f5273fe5f6
@@ -5528,7 +5528,8 @@ static void ieee80211_rx_mgmt_beacon(struct ieee80211_link_data *link,
|
|||||||
link->u.mgd.dtim_period = elems->dtim_period;
|
link->u.mgd.dtim_period = elems->dtim_period;
|
||||||
link->u.mgd.have_beacon = true;
|
link->u.mgd.have_beacon = true;
|
||||||
ifmgd->assoc_data->need_beacon = false;
|
ifmgd->assoc_data->need_beacon = false;
|
||||||
if (ieee80211_hw_check(&local->hw, TIMING_BEACON_ONLY)) {
|
if (ieee80211_hw_check(&local->hw, TIMING_BEACON_ONLY) &&
|
||||||
|
!ieee80211_is_s1g_beacon(hdr->frame_control)) {
|
||||||
link->conf->sync_tsf =
|
link->conf->sync_tsf =
|
||||||
le64_to_cpu(mgmt->u.beacon.timestamp);
|
le64_to_cpu(mgmt->u.beacon.timestamp);
|
||||||
link->conf->sync_device_ts =
|
link->conf->sync_device_ts =
|
||||||
|
|||||||
Reference in New Issue
Block a user