From 411af080342bfca938bb57ebc00344ff269301d7 Mon Sep 17 00:00:00 2001 From: pennam Date: Wed, 21 May 2025 15:02:41 +0200 Subject: [PATCH 1/2] WiFi: fix memory leak in scanNetworks() --- libraries/WiFi/src/WiFi.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libraries/WiFi/src/WiFi.cpp b/libraries/WiFi/src/WiFi.cpp index 6ad89d619..5ea11a105 100644 --- a/libraries/WiFi/src/WiFi.cpp +++ b/libraries/WiFi/src/WiFi.cpp @@ -215,7 +215,8 @@ int8_t arduino::WiFiClass::scanNetworks() { connected_ap = SSID_MAX_COUNT; uint8_t count = SSID_MAX_COUNT; if (ap_list != nullptr) { - free(ap_list); + delete[]ap_list; + ap_list = nullptr; } ap_list = new WiFiAccessPoint[count]; return wifi_if->scan(ap_list, count); From b9163e55cbb5d805226e9e98243e35b1310fa280 Mon Sep 17 00:00:00 2001 From: pennam Date: Wed, 21 May 2025 15:03:22 +0200 Subject: [PATCH 2/2] WiFi: remove usless variable in scanNetwork --- libraries/WiFi/src/WiFi.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libraries/WiFi/src/WiFi.cpp b/libraries/WiFi/src/WiFi.cpp index 5ea11a105..ef919dbb9 100644 --- a/libraries/WiFi/src/WiFi.cpp +++ b/libraries/WiFi/src/WiFi.cpp @@ -213,13 +213,13 @@ int arduino::WiFiClass::setSSID(const char* ssid) { int8_t arduino::WiFiClass::scanNetworks() { connected_ap = SSID_MAX_COUNT; - uint8_t count = SSID_MAX_COUNT; if (ap_list != nullptr) { delete[]ap_list; ap_list = nullptr; } - ap_list = new WiFiAccessPoint[count]; - return wifi_if->scan(ap_list, count); + + ap_list = new WiFiAccessPoint[SSID_MAX_COUNT]; + return wifi_if->scan(ap_list, SSID_MAX_COUNT); } char* arduino::WiFiClass::SSID(uint8_t networkItem) {