|
@@ -4683,8 +4683,9 @@ int wpa_auth_resend_m3(struct wpa_state_machine *sm,
|
|
#ifdef CONFIG_IEEE80211W
|
|
#ifdef CONFIG_IEEE80211W
|
|
opos = pos;
|
|
opos = pos;
|
|
pos = ieee80211w_kde_add(sm, 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 */
|
|
os_memset(opos, 0, 6); /* clear PN */
|
|
}
|
|
}
|
|
#endif /* CONFIG_IEEE80211W */
|
|
#endif /* CONFIG_IEEE80211W */
|
|
@@ -4779,8 +4780,10 @@ int wpa_auth_resend_group_m1(struct wpa_state_machine *sm,
|
|
#ifdef CONFIG_IEEE80211W
|
|
#ifdef CONFIG_IEEE80211W
|
|
opos = pos;
|
|
opos = pos;
|
|
pos = ieee80211w_kde_add(sm, 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 */
|
|
os_memset(opos, 0, 6); /* clear PN */
|
|
}
|
|
}
|
|
#endif /* CONFIG_IEEE80211W */
|
|
#endif /* CONFIG_IEEE80211W */
|