* [PATCH v3 1/2] eapol.c: Fix SEGV in eapol_rx_packets at receipt of EAPOL M1 msg
@ 2026-07-08 22:20 Dierk Modrow
2026-07-08 22:20 ` [PATCH v3 2/2] station.c: Fix SEGV in station_roam_scan_notify on roam scans Dierk Modrow
0 siblings, 1 reply; 2+ messages in thread
From: Dierk Modrow @ 2026-07-08 22:20 UTC (permalink / raw)
To: iwd; +Cc: pmenzel, Dierk Modrow
From: Dierk Modrow <dierk.modrow@sew-eurodrive.de>
It fixes a SEGV in eapol_rx_packets at receipt of EAPOL M1 msg at legacy
roaming following a failed FT-handover due to a preceding
ft_auth-/ft_reassoc-timeout. The issue only arises when using
mwifiex / NXP 88W9098 driver for the client's WLAN module.
We have seen the issue with SIEMENS SCALANCE W700 AX APs, but it may
also occur with other AP brands supporting FT-handover.
---
src/eapol.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/eapol.c b/src/eapol.c
index 372549c6..c2dc4e4c 100644
--- a/src/eapol.c
+++ b/src/eapol.c
@@ -2824,6 +2824,10 @@ void eapol_register(struct eapol_sm *sm)
l_queue_push_head(state_machines, sm);
+ /* workaround against SEGV on fct. eapol_rx_packet by avoiding for two different eapol_frame_watches with different ids, but same eapol_sm ptr */
+ if ((sm->watch_id > 0) && eapol_frame_watch_remove(sm->watch_id)) {
+ l_debug("existing frame_watch for sm=%p with id=%u successfully removed", sm, sm->watch_id);
+ }
sm->watch_id = eapol_frame_watch_add(sm->handshake->ifindex,
rx_handler, sm);
sm->protocol_version = sm->handshake->proto_version;
--
2.49.0.windows.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [PATCH v3 2/2] station.c: Fix SEGV in station_roam_scan_notify on roam scans
2026-07-08 22:20 [PATCH v3 1/2] eapol.c: Fix SEGV in eapol_rx_packets at receipt of EAPOL M1 msg Dierk Modrow
@ 2026-07-08 22:20 ` Dierk Modrow
0 siblings, 0 replies; 2+ messages in thread
From: Dierk Modrow @ 2026-07-08 22:20 UTC (permalink / raw)
To: iwd; +Cc: pmenzel, Dierk Modrow
From: Dierk Modrow <dierk.modrow@sew-eurodrive.de>
It fixes SEGV in station_roam_scan_notify when performing repeated roam scans
at legacy roaming after a failed FT-handover due to a
ft_auth-/ft_reassoc-timeout. The issue occurs with all WLAN drivers.
We have seen the issue with SIEMENS SCALANCE W700 AX APs, but it may also
occur with other AP brands supporting FT-handover.
---
src/station.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/station.c b/src/station.c
index 8fcf8c70..077e510e 100644
--- a/src/station.c
+++ b/src/station.c
@@ -2253,7 +2253,7 @@ static bool station_can_fast_transition(struct station *station,
{
uint16_t mdid;
- if (!hs->mde)
+ if (!hs || !hs->mde)
return false;
if (ie_parse_mobility_domain_from_data(hs->mde, hs->mde[1] + 2,
@@ -2917,7 +2917,7 @@ static bool station_roam_scan_notify(int err, struct l_queue *bss_list,
orig_security = network_get_security(network);
- if (hs->mde)
+ if (hs && hs->mde)
ie_parse_mobility_domain_from_data(hs->mde, hs->mde[1] + 2,
&mdid, NULL, NULL);
@@ -2930,7 +2930,7 @@ static bool station_roam_scan_notify(int err, struct l_queue *bss_list,
if (bss && !station->ap_directed_roaming) {
double cur_bss_rank = bss->rank;
- if (hs->mde && bss->mde_present && l_get_le16(bss->mde) == mdid)
+ if (hs && hs->mde && bss->mde_present && l_get_le16(bss->mde) == mdid)
cur_bss_rank *= RANK_FT_FACTOR;
cur_bss_group_rank = evaluate_bss_group_rank(bss->addr,
@@ -2967,8 +2967,8 @@ static bool station_roam_scan_notify(int err, struct l_queue *bss_list,
goto next;
/* Skip result if it is not part of the ESS */
- if (bss->ssid_len != hs->ssid_len ||
- memcmp(bss->ssid, hs->ssid, hs->ssid_len))
+ if (hs && (bss->ssid_len != hs->ssid_len ||
+ memcmp(bss->ssid, hs->ssid, hs->ssid_len)))
goto next;
if (scan_bss_get_security(bss, &security) < 0)
@@ -2986,7 +2986,7 @@ static bool station_roam_scan_notify(int err, struct l_queue *bss_list,
rank = bss->rank;
- if (hs->mde && bss->mde_present && l_get_le16(bss->mde) == mdid)
+ if (hs && hs->mde && bss->mde_present && l_get_le16(bss->mde) == mdid)
rank *= RANK_FT_FACTOR;
group_rank = evaluate_bss_group_rank(bss->addr, bss->frequency,
--
2.49.0.windows.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-07-08 22:21 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-08 22:20 [PATCH v3 1/2] eapol.c: Fix SEGV in eapol_rx_packets at receipt of EAPOL M1 msg Dierk Modrow
2026-07-08 22:20 ` [PATCH v3 2/2] station.c: Fix SEGV in station_roam_scan_notify on roam scans Dierk Modrow
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.