From b51e80f5ddf5eb0ec9141607bbcd360a3fdf3c4a Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Sat, 8 Nov 2025 16:28:19 +0000 Subject: [PATCH] Safety check: ensure multiWiFi is never empty to prevent crashes during serialization --- wled00/wled.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/wled00/wled.cpp b/wled00/wled.cpp index bbf11f990..e51101995 100644 --- a/wled00/wled.cpp +++ b/wled00/wled.cpp @@ -658,11 +658,17 @@ void WLED::initConnection() WiFi.setPhyMode(force802_3g ? WIFI_PHY_MODE_11G : WIFI_PHY_MODE_11N); #endif - if (multiWiFi[selectedWiFi].staticIP != 0U && multiWiFi[selectedWiFi].staticGW != 0U) { +if (multiWiFi.empty()) { // guard: handle empty WiFi list safely + WiFi.config(IPAddress((uint32_t)0), IPAddress((uint32_t)0), IPAddress((uint32_t)0)); + } else { + if (selectedWiFi >= multiWiFi.size()) selectedWiFi = 0; // guard: ensure valid index + if (multiWiFi[selectedWiFi].staticIP != IPAddress((uint32_t)0) && + multiWiFi[selectedWiFi].staticGW != IPAddress((uint32_t)0)) { // guard: compare as IPAddress to avoid pointer overload WiFi.config(multiWiFi[selectedWiFi].staticIP, multiWiFi[selectedWiFi].staticGW, multiWiFi[selectedWiFi].staticSN, dnsAddress); } else { WiFi.config(IPAddress((uint32_t)0), IPAddress((uint32_t)0), IPAddress((uint32_t)0)); } + } lastReconnectAttempt = millis();