From 6cdebf78cd195cad31374cca2ab9a5c930c34b6a Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Wed, 12 Oct 2022 11:11:09 -0700 Subject: [PATCH] Fix memory leak in WebServer Fixes #908 --- .../examples/AdvancedWebServer/AdvancedWebServer.ino | 5 ++++- libraries/WebServer/src/HTTPServer.cpp | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/libraries/WebServer/examples/AdvancedWebServer/AdvancedWebServer.ino b/libraries/WebServer/examples/AdvancedWebServer/AdvancedWebServer.ino index c8bc12180..7ca408a0d 100644 --- a/libraries/WebServer/examples/AdvancedWebServer/AdvancedWebServer.ino +++ b/libraries/WebServer/examples/AdvancedWebServer/AdvancedWebServer.ino @@ -46,6 +46,7 @@ WebServer server(80); const int led = LED_BUILTIN; void handleRoot() { + static int cnt = 0; digitalWrite(led, 1); char temp[400]; int sec = millis() / 1000; @@ -65,11 +66,13 @@ void handleRoot() { \

Hello from the Pico W!

\

Uptime: %02d:%02d:%02d

\ +

Free Memory: %d

\ +

Page Count: %d

\ \ \ ", - hr, min % 60, sec % 60); + hr, min % 60, sec % 60, rp2040.getFreeHeap(), ++cnt); server.send(200, "text/html", temp); digitalWrite(led, 0); } diff --git a/libraries/WebServer/src/HTTPServer.cpp b/libraries/WebServer/src/HTTPServer.cpp index a23aee82e..77bea16f4 100644 --- a/libraries/WebServer/src/HTTPServer.cpp +++ b/libraries/WebServer/src/HTTPServer.cpp @@ -280,7 +280,10 @@ void HTTPServer::httpHandleClient() { } if (!keepCurrentClient) { - _currentClient = nullptr; + if (_currentClient) { + delete _currentClient; + _currentClient = nullptr; + } _currentStatus = HC_NONE; _currentUpload.reset(); }