]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
P2P: Do not fail p2p_group_remove just based on current_ssid
authorJouni Malinen <jouni@qca.qualcomm.com>
Fri, 31 Aug 2012 18:35:32 +0000 (21:35 +0300)
committerJouni Malinen <j@w1.fi>
Fri, 31 Aug 2012 18:35:32 +0000 (21:35 +0300)
The wpa_s->current_ssid pointer may get cleared, e.g., when
disconnected. Commit 30ee769235f3170d9bf6b62c11c6e018e97deb84 made
wpas_p2p_group_delete() exit early before removing a P2P interface in
this type of case. That can cause number of issues from p2p_group_remove
command failing to busy loop when terminating wpa_supplicant if there is
a P2P group interface in client mode and that interface happens to be in
disconnected state. Fix these issues by allowing wpas_p2p_group_delete()
remove the P2P group interface regardless of whether wpa_s->currnt_ssid
is set.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>

wpa_supplicant/p2p_supplicant.c

index 191d543a23b44a3b5ada30e08617c6d4537a2d17..f8959c6abcd157989d836931ce3d3832aefb5ce7 100644 (file)
@@ -262,7 +262,9 @@ static int wpas_p2p_group_delete(struct wpa_supplicant *wpa_s,
                                break;
                        ssid = ssid->next;
                }
-               if (ssid == NULL) {
+               if (ssid == NULL &&
+                       wpa_s->p2p_group_interface == NOT_P2P_GROUP_INTERFACE)
+               {
                        wpa_printf(MSG_ERROR, "P2P: P2P group interface "
                                   "not found");
                        return -1;