Skip to content

Commit 28733f1

Browse files
authored
ESP32: Do not read the ap record if esp_wifi_scan_start() is not called by NetworkCommissioningDriver (project-chip#27161) (project-chip#28045)
1 parent 5ca22dd commit 28733f1

File tree

1 file changed

+17
-15
lines changed

1 file changed

+17
-15
lines changed

src/platform/ESP32/NetworkCommissioningDriver.cpp

+17-15
Original file line numberDiff line numberDiff line change
@@ -297,16 +297,18 @@ CHIP_ERROR ESPWiFiDriver::StartScanWiFiNetworks(ByteSpan ssid)
297297

298298
void ESPWiFiDriver::OnScanWiFiNetworkDone()
299299
{
300+
if (!mpScanCallback)
301+
{
302+
ChipLogProgress(DeviceLayer, "No scan callback");
303+
return;
304+
}
300305
uint16_t ap_number;
301306
esp_wifi_scan_get_ap_num(&ap_number);
302307
if (!ap_number)
303308
{
304309
ChipLogProgress(DeviceLayer, "No AP found");
305-
if (mpScanCallback != nullptr)
306-
{
307-
mpScanCallback->OnFinished(Status::kSuccess, CharSpan(), nullptr);
308-
mpScanCallback = nullptr;
309-
}
310+
mpScanCallback->OnFinished(Status::kSuccess, CharSpan(), nullptr);
311+
mpScanCallback = nullptr;
310312
return;
311313
}
312314

@@ -317,11 +319,8 @@ void ESPWiFiDriver::OnScanWiFiNetworkDone()
317319
if (ap_buffer_ptr == NULL)
318320
{
319321
ChipLogError(DeviceLayer, "can't malloc memory for ap_list_buffer");
320-
if (mpScanCallback)
321-
{
322-
mpScanCallback->OnFinished(Status::kUnknownError, CharSpan(), nullptr);
323-
mpScanCallback = nullptr;
324-
}
322+
mpScanCallback->OnFinished(Status::kUnknownError, CharSpan(), nullptr);
323+
mpScanCallback = nullptr;
325324
return;
326325
}
327326
wifi_ap_record_t * ap_list_buffer = ap_buffer_ptr.get();
@@ -343,16 +342,19 @@ void ESPWiFiDriver::OnScanWiFiNetworkDone()
343342
{
344343
ap_buffer_ptr.release();
345344
}
346-
}
347-
else
348-
{
349-
ChipLogError(DeviceLayer, "can't get ap_records ");
350-
if (mpScanCallback)
345+
else
351346
{
347+
ChipLogError(DeviceLayer, "can't schedule the scan result processing");
352348
mpScanCallback->OnFinished(Status::kUnknownError, CharSpan(), nullptr);
353349
mpScanCallback = nullptr;
354350
}
355351
}
352+
else
353+
{
354+
ChipLogError(DeviceLayer, "can't get ap_records ");
355+
mpScanCallback->OnFinished(Status::kUnknownError, CharSpan(), nullptr);
356+
mpScanCallback = nullptr;
357+
}
356358
}
357359

358360
void ESPWiFiDriver::OnNetworkStatusChange()

0 commit comments

Comments
 (0)