mirror of
https://github.com/vanhoefm/fragattacks.git
synced 2024-12-01 03:38:21 -05:00
P2P: p2p_group_remove should fail on non-P2P interface
p2p_group_remove should only attempt to remove P2P group interfaces and fail on non-P2P group interfaces. Signed-hostap: Michael Naumov <michael.naumov@intel.com> Signed-hostap: Nirav Shah <nirav.j2.shah@intel.com>
This commit is contained in:
parent
f0c7a986bb
commit
30ee769235
@ -214,7 +214,7 @@ static struct wpa_supplicant * wpas_get_p2p_group(struct wpa_supplicant *wpa_s,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void wpas_p2p_group_delete(struct wpa_supplicant *wpa_s, int silent)
|
static int wpas_p2p_group_delete(struct wpa_supplicant *wpa_s, int silent)
|
||||||
{
|
{
|
||||||
struct wpa_ssid *ssid;
|
struct wpa_ssid *ssid;
|
||||||
char *gtype;
|
char *gtype;
|
||||||
@ -234,6 +234,16 @@ static void wpas_p2p_group_delete(struct wpa_supplicant *wpa_s, int silent)
|
|||||||
break;
|
break;
|
||||||
ssid = ssid->next;
|
ssid = ssid->next;
|
||||||
}
|
}
|
||||||
|
if (ssid == NULL) {
|
||||||
|
/*
|
||||||
|
* Reset wpa_s->removal_reason to the default unknown
|
||||||
|
* state.
|
||||||
|
*/
|
||||||
|
wpa_s->removal_reason = P2P_GROUP_REMOVAL_UNKNOWN;
|
||||||
|
wpa_printf(MSG_ERROR, "P2P: P2P group interface "
|
||||||
|
"not found");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (wpa_s->p2p_group_interface == P2P_GROUP_INTERFACE_GO)
|
if (wpa_s->p2p_group_interface == P2P_GROUP_INTERFACE_GO)
|
||||||
gtype = "GO";
|
gtype = "GO";
|
||||||
@ -295,7 +305,7 @@ static void wpas_p2p_group_delete(struct wpa_supplicant *wpa_s, int silent)
|
|||||||
if (wpa_s && ifname)
|
if (wpa_s && ifname)
|
||||||
wpa_drv_if_remove(wpa_s, type, ifname);
|
wpa_drv_if_remove(wpa_s, type, ifname);
|
||||||
os_free(ifname);
|
os_free(ifname);
|
||||||
return;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
wpa_printf(MSG_DEBUG, "P2P: Remove temporary group network");
|
wpa_printf(MSG_DEBUG, "P2P: Remove temporary group network");
|
||||||
@ -328,6 +338,8 @@ static void wpas_p2p_group_delete(struct wpa_supplicant *wpa_s, int silent)
|
|||||||
wpa_supplicant_ap_deinit(wpa_s);
|
wpa_supplicant_ap_deinit(wpa_s);
|
||||||
else
|
else
|
||||||
wpa_drv_deinit_p2p_cli(wpa_s);
|
wpa_drv_deinit_p2p_cli(wpa_s);
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -4796,9 +4808,7 @@ int wpas_p2p_disconnect(struct wpa_supplicant *wpa_s)
|
|||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
wpa_s->removal_reason = P2P_GROUP_REMOVAL_REQUESTED;
|
wpa_s->removal_reason = P2P_GROUP_REMOVAL_REQUESTED;
|
||||||
wpas_p2p_group_delete(wpa_s, 0);
|
return wpas_p2p_group_delete(wpa_s, 0);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user