--- hostapd-20120707/src/ap/wpa_auth.c 2012-07-24 18:39:46.478606571 +0200 +++ hostapd-20120707/src/ap/wpa_auth.c 2012-07-24 18:40:42.686680840 +0200 @@ -2416,6 +2416,9 @@ static void wpa_group_gtk_init(struct wp static int wpa_group_update_sta(struct wpa_state_machine *sm, void *ctx) { + + if (ctx != sm->group) return 0; + if (sm->wpa_ptk_state != WPA_PTK_PTKINITDONE) { wpa_auth_logger(sm->wpa_auth, sm->addr, LOGGER_DEBUG, "Not in PTKINITDONE; skip Group Key update"); @@ -2470,7 +2473,7 @@ static void wpa_group_setkeys(struct wpa group->GKeyDoneStations); group->GKeyDoneStations = 0; } - wpa_auth_for_each_sta(wpa_auth, wpa_group_update_sta, NULL); + wpa_auth_for_each_sta(wpa_auth, wpa_group_update_sta, group); wpa_printf(MSG_DEBUG, "wpa_group_setkeys: GKeyDoneStations=%d", group->GKeyDoneStations); }