Skip to content

Commit

Permalink
fix(scan): Make sure that we do not leak memory if reading the APs fa…
Browse files Browse the repository at this point in the history
…ils (espressif#10312)

As it was written, it was possible to leak the scan result array if esp_wifi_scan_get_ap_records() failed. Change will ensure that the array is deleted in that case.
  • Loading branch information
me-no-dev authored Sep 10, 2024
1 parent 2c4ce95 commit d846311
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion libraries/WiFi/src/WiFiScan.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,11 @@ void WiFiScanClass::_scanDone() {
esp_wifi_scan_get_ap_num(&(WiFiScanClass::_scanCount));
if (WiFiScanClass::_scanCount) {
WiFiScanClass::_scanResult = new wifi_ap_record_t[WiFiScanClass::_scanCount];
if (!WiFiScanClass::_scanResult || esp_wifi_scan_get_ap_records(&(WiFiScanClass::_scanCount), (wifi_ap_record_t *)_scanResult) != ESP_OK) {
if (!WiFiScanClass::_scanResult) {
WiFiScanClass::_scanCount = 0;
} else if (esp_wifi_scan_get_ap_records(&(WiFiScanClass::_scanCount), (wifi_ap_record_t *)_scanResult) != ESP_OK) {
delete[] reinterpret_cast<wifi_ap_record_t *>(WiFiScanClass::_scanResult);
WiFiScanClass::_scanResult = 0;
WiFiScanClass::_scanCount = 0;
}
}
Expand Down

0 comments on commit d846311

Please sign in to comment.