From adddfc48d2d7bfa2b1a2405ab8f404b6383ec236 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Wed, 3 Oct 2012 14:31:41 -0700 Subject: P2P: Fix p2p_cancel processing during group formation The wpa_s->p2p_in_provisioning flag did not get cleared in some cases where p2p_cancel command is used to stop group formation. This can result in some operations (like p2p_find) failing afterwards. Fix this by using wpas_group_formation_completed() when processing p2p_cancel for a group that has not yet completed group formation. Bug: 7280743 Change-Id: I2dea935bd7c0509237de54bd048954f75ce80bfc Signed-off-by: Jouni Malinen --- wpa_supplicant/p2p_supplicant.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/wpa_supplicant/p2p_supplicant.c b/wpa_supplicant/p2p_supplicant.c index c721a29..a51254a 100644 --- a/wpa_supplicant/p2p_supplicant.c +++ b/wpa_supplicant/p2p_supplicant.c @@ -5197,6 +5197,10 @@ int wpas_p2p_cancel(struct wpa_supplicant *wpa_s) found = 1; eloop_cancel_timeout(wpas_p2p_group_formation_timeout, wpa_s->parent, NULL); + if (wpa_s->p2p_in_provisioning) { + wpas_group_formation_completed(wpa_s, 0); + break; + } wpas_p2p_group_delete(wpa_s, P2P_GROUP_REMOVAL_REQUESTED); break; -- cgit v1.1