P2Ps: Clear existing value when peer stops sending adv_service_instance

If a peer stops sending adv_service_instance, we should clear the
existing dev->info.p2ps_instance.

This commit fixes the following scenario:

When peer device stops sending adv_service_instance, wpa_supplicant did
not remove old dev->info.p2ps_instance from device's property. This
variable should be updated as per peer behavior and should be cleared
when peer stops sending this information.

Signed-off-by: Nishant Chaprana <n.chaprana@samsung.com>
This commit is contained in:
Nishant Chaprana 2016-07-05 15:11:45 +05:30 committed by Jouni Malinen
parent ce4af56322
commit 0f282c76ee

View file

@ -788,11 +788,11 @@ int p2p_add_device(struct p2p_data *p2p, const u8 *addr, int freq,
dev->oper_ssid_len = msg.ssid[1]; dev->oper_ssid_len = msg.ssid[1];
} }
if (msg.adv_service_instance && msg.adv_service_instance_len) { wpabuf_free(dev->info.p2ps_instance);
wpabuf_free(dev->info.p2ps_instance); dev->info.p2ps_instance = NULL;
if (msg.adv_service_instance && msg.adv_service_instance_len)
dev->info.p2ps_instance = wpabuf_alloc_copy( dev->info.p2ps_instance = wpabuf_alloc_copy(
msg.adv_service_instance, msg.adv_service_instance_len); msg.adv_service_instance, msg.adv_service_instance_len);
}
if (freq >= 2412 && freq <= 2484 && msg.ds_params && if (freq >= 2412 && freq <= 2484 && msg.ds_params &&
*msg.ds_params >= 1 && *msg.ds_params <= 14) { *msg.ds_params >= 1 && *msg.ds_params <= 14) {