OSDN Git Service

P2P: Fix network removal to select correct block
authorJouni Malinen <j@w1.fi>
Fri, 5 Oct 2012 18:01:57 +0000 (11:01 -0700)
committerIrfan Sheriff <isheriff@google.com>
Fri, 5 Oct 2012 18:02:25 +0000 (11:02 -0700)
If wpa_s->current_ssid is not set (e.g., after disconnection that
did not result in immediate group removal), an incorrect group could
have been removed since the network block iteration here could select
the network block that is used to store persistent group credentials.
Fix this by verifying that disabled != 2 to avoid picking the network
block that could not have been the temporary P2P group.

Bug: 7290511
Change-Id: Ia61bab3e11137ab2c0c34014e4d8d8bdee2a0469

wpa_supplicant/p2p_supplicant.c

index a51254a..efc36cd 100644 (file)
@@ -272,7 +272,7 @@ static int wpas_p2p_group_delete(struct wpa_supplicant *wpa_s,
                 */
                ssid = wpa_s->conf->ssid;
                while (ssid) {
-                       if (ssid->p2p_group)
+                       if (ssid->p2p_group && ssid->disabled != 2)
                                break;
                        ssid = ssid->next;
                }