mirror of
https://github.com/vanhoefm/fragattacks.git
synced 2024-11-25 00:38:24 -05:00
P2P: Reject p2p_group_add if forced frequency is not acceptable
If the freq parameter is specified and we are already running legacy STA on a different frequency with a driver that does not support multi-channel concurrency, reject p2p_group_add. Same code already exists in the path of P2P connection with go negotiation but is missing for autonomous GO. Signed-hostap: Neeraj Garg <neerajkg@broadcom.com>
This commit is contained in:
parent
0d891981db
commit
b8349523e4
@ -3005,9 +3005,9 @@ int wpas_p2p_group_remove(struct wpa_supplicant *wpa_s, const char *ifname)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void wpas_p2p_init_go_params(struct wpa_supplicant *wpa_s,
|
static int wpas_p2p_init_go_params(struct wpa_supplicant *wpa_s,
|
||||||
struct p2p_go_neg_results *params,
|
struct p2p_go_neg_results *params,
|
||||||
int freq)
|
int freq)
|
||||||
{
|
{
|
||||||
u8 bssid[ETH_ALEN];
|
u8 bssid[ETH_ALEN];
|
||||||
int res;
|
int res;
|
||||||
@ -3068,7 +3068,16 @@ static void wpas_p2p_init_go_params(struct wpa_supplicant *wpa_s,
|
|||||||
wpa_printf(MSG_DEBUG, "P2P: Force GO on the channel we are "
|
wpa_printf(MSG_DEBUG, "P2P: Force GO on the channel we are "
|
||||||
"already using on a shared interface");
|
"already using on a shared interface");
|
||||||
params->freq = res;
|
params->freq = res;
|
||||||
|
} else if (res > 0 && freq != res &&
|
||||||
|
!(wpa_s->drv_flags &
|
||||||
|
WPA_DRIVER_FLAGS_MULTI_CHANNEL_CONCURRENT)) {
|
||||||
|
wpa_printf(MSG_DEBUG, "P2P: Cannot start P2P group on %u MHz "
|
||||||
|
"while connected on another channel (%u MHz)",
|
||||||
|
freq, res);
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -3163,7 +3172,8 @@ int wpas_p2p_group_add(struct wpa_supplicant *wpa_s, int persistent_group,
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
wpas_p2p_init_go_params(wpa_s, ¶ms, freq);
|
if (wpas_p2p_init_go_params(wpa_s, ¶ms, freq))
|
||||||
|
return -1;
|
||||||
p2p_go_params(wpa_s->global->p2p, ¶ms);
|
p2p_go_params(wpa_s->global->p2p, ¶ms);
|
||||||
params.persistent_group = persistent_group;
|
params.persistent_group = persistent_group;
|
||||||
|
|
||||||
@ -3246,7 +3256,8 @@ int wpas_p2p_group_add_persistent(struct wpa_supplicant *wpa_s,
|
|||||||
if (ssid->mode != WPAS_MODE_P2P_GO)
|
if (ssid->mode != WPAS_MODE_P2P_GO)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
wpas_p2p_init_go_params(wpa_s, ¶ms, freq);
|
if (wpas_p2p_init_go_params(wpa_s, ¶ms, freq))
|
||||||
|
return -1;
|
||||||
|
|
||||||
params.role_go = 1;
|
params.role_go = 1;
|
||||||
if (ssid->passphrase == NULL ||
|
if (ssid->passphrase == NULL ||
|
||||||
|
Loading…
Reference in New Issue
Block a user