From: "Aloni, Adiel" <adiel.aloni@xxxxxxxxx> When a dedicated P2P device interface is used, the global->p2p_group_formation would not set in p2p_join_start if no separate group interface is used. This would cause that in case of a failure in group formation, the cleaning of p2p_in_provisioning is done on the wrong interface. Fix this by setting the global->p2p_group_formation correctly in case that the group interface is reusing wpa_s->parent. Signed-off-by: Adiel Aloni <adiel.aloni@xxxxxxxxx> --- wpa_supplicant/p2p_supplicant.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/wpa_supplicant/p2p_supplicant.c b/wpa_supplicant/p2p_supplicant.c index 978aaa3..1654b04 100644 --- a/wpa_supplicant/p2p_supplicant.c +++ b/wpa_supplicant/p2p_supplicant.c @@ -5092,17 +5092,18 @@ static int wpas_p2p_join_start(struct wpa_supplicant *wpa_s, int freq, os_memcpy(group->p2p_pin, wpa_s->p2p_pin, sizeof(group->p2p_pin)); group->p2p_wps_method = wpa_s->p2p_wps_method; - } else { - /* - * Need to mark the current interface for p2p_group_formation - * when a separate group interface is not used. This is needed - * to allow p2p_cancel stop a pending p2p_connect-join. - * wpas_p2p_init_group_interface() addresses this for the case - * where a separate group interface is used. - */ - wpa_s->global->p2p_group_formation = wpa_s; } + /* + * Need to mark the current interface for p2p_group_formation + * when a separate group interface is not used. This is needed + * to allow p2p_cancel stop a pending p2p_connect-join. + * wpas_p2p_init_group_interface() addresses this for the case + * where a separate group interface is used. + */ + if (group == wpa_s->parent) + wpa_s->global->p2p_group_formation = group; + group->p2p_in_provisioning = 1; group->p2p_fallback_to_go_neg = wpa_s->p2p_fallback_to_go_neg; -- 2.7.4 _______________________________________________ Hostap mailing list Hostap@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/hostap