Skip to content

Commit 91da4ea

Browse files
akshatespressif-bot
authored andcommitted
fix(wpa_supplicant): Detect PBC overlap even when UUID is null
1 parent c99c80c commit 91da4ea

File tree

1 file changed

+8
-6
lines changed
  • components/wpa_supplicant/esp_supplicant/src

1 file changed

+8
-6
lines changed

components/wpa_supplicant/esp_supplicant/src/esp_wps.c

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,7 @@ is_wps_pbc_overlap(struct wps_sm *sm, const u8 *sel_uuid)
349349
{
350350
if (!sel_uuid) {
351351
wpa_printf(MSG_DEBUG, "WPS: null uuid field");
352-
return false;
352+
return true;
353353
}
354354

355355
if (os_memcmp(sel_uuid, sm->uuid_r, WPS_UUID_LEN) != 0) {
@@ -370,7 +370,7 @@ wps_parse_scan_result(struct wps_scan_ie *scan)
370370
struct wps_sm *sm = gWpsSm;
371371
wifi_mode_t op_mode = 0;
372372

373-
if(sm->wps_pbc_overlap) {
373+
if (sm->wps_pbc_overlap) {
374374
return false;
375375
}
376376

@@ -445,11 +445,13 @@ wps_parse_scan_result(struct wps_scan_ie *scan)
445445
os_memcpy(sm->bssid, scan->bssid, ETH_ALEN);
446446

447447
scan_uuid = wps_get_uuid_e(buf);
448+
if (sm->discover_ssid_cnt > 1 && wps_get_type() == WPS_TYPE_PBC && is_wps_pbc_overlap(sm, scan_uuid) == true) {
449+
wpa_printf(MSG_INFO, "pbc_overlap flag is true");
450+
sm->wps_pbc_overlap = true;
451+
wpabuf_free(buf);
452+
return false;
453+
}
448454
if (scan_uuid) {
449-
if (sm->discover_ssid_cnt > 1 && wps_get_type() == WPS_TYPE_PBC && is_wps_pbc_overlap(sm, scan_uuid) == true) {
450-
wpa_printf(MSG_INFO, "pbc_overlap flag is true");
451-
sm->wps_pbc_overlap = true;
452-
}
453455
os_memcpy(sm->uuid_r, scan_uuid, WPS_UUID_LEN);
454456
}
455457

0 commit comments

Comments
 (0)