Browse Source

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.
Jouni Malinen 14 years ago
parent
commit
d6ae995057
1 changed files with 2 additions and 1 deletions
  1. 2 1
      wpa_supplicant/p2p_supplicant.c

+ 2 - 1
wpa_supplicant/p2p_supplicant.c

@@ -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 "