Skip to content

Commit e89ce78

Browse files
Fix memory leak in WebServer (#914)
Fixes #908
1 parent 98c4b92 commit e89ce78

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

libraries/WebServer/examples/AdvancedWebServer/AdvancedWebServer.ino

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ WebServer server(80);
4646
const int led = LED_BUILTIN;
4747

4848
void handleRoot() {
49+
static int cnt = 0;
4950
digitalWrite(led, 1);
5051
char temp[400];
5152
int sec = millis() / 1000;
@@ -65,11 +66,13 @@ void handleRoot() {
6566
<body>\
6667
<h1>Hello from the Pico W!</h1>\
6768
<p>Uptime: %02d:%02d:%02d</p>\
69+
<p>Free Memory: %d</p>\
70+
<p>Page Count: %d</p>\
6871
<img src=\"/test.svg\" />\
6972
</body>\
7073
</html>",
7174

72-
hr, min % 60, sec % 60);
75+
hr, min % 60, sec % 60, rp2040.getFreeHeap(), ++cnt);
7376
server.send(200, "text/html", temp);
7477
digitalWrite(led, 0);
7578
}

libraries/WebServer/src/HTTPServer.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,10 @@ void HTTPServer::httpHandleClient() {
280280
}
281281

282282
if (!keepCurrentClient) {
283-
_currentClient = nullptr;
283+
if (_currentClient) {
284+
delete _currentClient;
285+
_currentClient = nullptr;
286+
}
284287
_currentStatus = HC_NONE;
285288
_currentUpload.reset();
286289
}

0 commit comments

Comments
 (0)