Fixed PBC overlap detection to handle case of missing UUID-E
UUID-E is not required to be present in Beacon frame, so we need to accept scan results that do not have UUID-E as a valid PBC situation as long as not more than one AP is in active PBC mode.
This commit is contained in:
parent
723763cba0
commit
44cd430f87
1 changed files with 2 additions and 14 deletions
|
@ -569,12 +569,6 @@ int wpas_wps_scan_pbc_overlap(struct wpa_supplicant *wpa_s,
|
||||||
sel_uuid = wps_get_uuid_e(wps_ie);
|
sel_uuid = wps_get_uuid_e(wps_ie);
|
||||||
else
|
else
|
||||||
sel_uuid = NULL;
|
sel_uuid = NULL;
|
||||||
if (!sel_uuid) {
|
|
||||||
wpa_printf(MSG_DEBUG, "WPS: UUID-E not available for PBC "
|
|
||||||
"overlap detection");
|
|
||||||
wpabuf_free(wps_ie);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; i < wpa_s->scan_res->num; i++) {
|
for (i = 0; i < wpa_s->scan_res->num; i++) {
|
||||||
struct wpa_scan_res *bss = wpa_s->scan_res->res[i];
|
struct wpa_scan_res *bss = wpa_s->scan_res->res[i];
|
||||||
|
@ -589,14 +583,8 @@ int wpas_wps_scan_pbc_overlap(struct wpa_supplicant *wpa_s,
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
uuid = wps_get_uuid_e(ie);
|
uuid = wps_get_uuid_e(ie);
|
||||||
if (uuid == NULL) {
|
if (sel_uuid == NULL || uuid == NULL ||
|
||||||
wpa_printf(MSG_DEBUG, "WPS: UUID-E not available for "
|
os_memcmp(sel_uuid, uuid, 16) != 0) {
|
||||||
"PBC overlap detection (other BSS)");
|
|
||||||
ret = 1;
|
|
||||||
wpabuf_free(ie);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (os_memcmp(sel_uuid, uuid, 16) != 0) {
|
|
||||||
ret = 1; /* PBC overlap */
|
ret = 1; /* PBC overlap */
|
||||||
wpabuf_free(ie);
|
wpabuf_free(ie);
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in a new issue