diff --git a/src/ap/wpa_auth.c b/src/ap/wpa_auth.c index 8dde1d0aa..e0eae4a71 100644 --- a/src/ap/wpa_auth.c +++ b/src/ap/wpa_auth.c @@ -4683,8 +4683,9 @@ int wpa_auth_resend_m3(struct wpa_state_machine *sm, #ifdef CONFIG_IEEE80211W opos = pos; pos = ieee80211w_kde_add(sm, pos); - if (pos - opos >= WPA_IGTK_KDE_PREFIX_LEN) { - opos += 2; /* skip keyid */ + if (pos - opos >= 2 + RSN_SELECTOR_LEN + WPA_IGTK_KDE_PREFIX_LEN) { + /* skip KDE header and keyid */ + opos += 2 + RSN_SELECTOR_LEN + 2; os_memset(opos, 0, 6); /* clear PN */ } #endif /* CONFIG_IEEE80211W */ @@ -4779,8 +4780,10 @@ int wpa_auth_resend_group_m1(struct wpa_state_machine *sm, #ifdef CONFIG_IEEE80211W opos = pos; pos = ieee80211w_kde_add(sm, pos); - if (pos - opos >= WPA_IGTK_KDE_PREFIX_LEN) { - opos += 2; /* skip keyid */ + if (pos - opos >= + 2 + RSN_SELECTOR_LEN + WPA_IGTK_KDE_PREFIX_LEN) { + /* skip KDE header and keyid */ + opos += 2 + RSN_SELECTOR_LEN + 2; os_memset(opos, 0, 6); /* clear PN */ } #endif /* CONFIG_IEEE80211W */