P2P: Fix infinite loop on interface selection for Action frame TX

When the first wpa_supplicant interface is not the correct one for
transmitting an Action frame (e.g., P2P Presence Request frame
uses a group interface), the code got stuck in an infinite busy
loop. Fix the iteration to go through the interfaces properly.
This commit is contained in:
Jouni Malinen 2010-06-22 20:08:14 -07:00 committed by Jouni Malinen
parent 962473c136
commit d6ae995057

View file

@ -497,7 +497,7 @@ static void wpas_send_action_cb(void *eloop_ctx, void *timeout_ctx)
* driver uses a separate interface for that purpose. However, some
* Action frames are actually sent within a P2P Group and when that is
* the case, we need to follow power saving (e.g., GO buffering the
* frame for a client in PS mode or a client following the adverised
* frame for a client in PS mode or a client following the advertised
* NoA from its GO). To make that easier for the driver, select the
* correct group interface here.
*/
@ -512,6 +512,7 @@ static void wpas_send_action_cb(void *eloop_ctx, void *timeout_ctx)
if (os_memcmp(wpa_s->pending_action_src,
iface->own_addr, ETH_ALEN) == 0)
break;
iface = iface->next;
}
if (iface) {
wpa_printf(MSG_DEBUG, "P2P: Use group interface %s "