fix(scan): Make sure that we do not leak memory if reading the APs fails (#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.
This commit is contained in:
parent
2c4ce95e16
commit
d846311344
1 changed files with 5 additions and 1 deletions
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue