P2P: Advertise IP Address Allocation only if it is enabled on GO
This group capability bit was previously added unconditionally which could result in the P2P Client assuming the functionality is available even though the GO would always reject the request (not reply to it with an assigned IP address) during the 4-way handshake. Fix this by advertising the capability only if the GO configuration allow IP address assignment to be completed. Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
7f46ad9ee5
commit
f7648c8679
3 changed files with 10 additions and 1 deletions
|
@ -1715,6 +1715,12 @@ struct p2p_group_config {
|
|||
*/
|
||||
int freq;
|
||||
|
||||
/**
|
||||
* ip_addr_alloc - Whether IP address allocation within 4-way handshake
|
||||
* is supported
|
||||
*/
|
||||
int ip_addr_alloc;
|
||||
|
||||
/**
|
||||
* cb_ctx - Context to use with callback functions
|
||||
*/
|
||||
|
|
|
@ -155,7 +155,8 @@ static void p2p_group_add_common_ies(struct p2p_group *group,
|
|||
group_capab |= P2P_GROUP_CAPAB_CROSS_CONN;
|
||||
if (group->num_members >= group->cfg->max_clients)
|
||||
group_capab |= P2P_GROUP_CAPAB_GROUP_LIMIT;
|
||||
group_capab |= P2P_GROUP_CAPAB_IP_ADDR_ALLOCATION;
|
||||
if (group->cfg->ip_addr_alloc)
|
||||
group_capab |= P2P_GROUP_CAPAB_IP_ADDR_ALLOCATION;
|
||||
p2p_buf_add_capability(ie, dev_capab, group_capab);
|
||||
}
|
||||
|
||||
|
|
|
@ -6328,6 +6328,8 @@ struct p2p_group * wpas_p2p_group_init(struct wpa_supplicant *wpa_s,
|
|||
cfg->cb_ctx = wpa_s;
|
||||
cfg->ie_update = wpas_p2p_ie_update;
|
||||
cfg->idle_update = wpas_p2p_idle_update;
|
||||
cfg->ip_addr_alloc = WPA_GET_BE32(wpa_s->p2pdev->conf->ip_addr_start)
|
||||
!= 0;
|
||||
|
||||
group = p2p_group_init(wpa_s->global->p2p, cfg);
|
||||
if (group == NULL)
|
||||
|
|
Loading…
Reference in a new issue