From 5784092c1b12737ed8d5c13411353ec38f24ca41 Mon Sep 17 00:00:00 2001 From: Christian Schwinne Date: Tue, 9 Nov 2021 09:56:02 +0100 Subject: [PATCH] Fix settings JS buffer too small (#2323) --- wled00/const.h | 6 +++++- wled00/wled.cpp | 2 +- wled00/wled_server.cpp | 3 ++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/wled00/const.h b/wled00/const.h index 51205d296..62d12e55a 100644 --- a/wled00/const.h +++ b/wled00/const.h @@ -265,7 +265,11 @@ #endif // string temp buffer (now stored in stack locally) -#define OMAX 2048 +#ifdef ESP8266 +#define SETTINGS_STACK_BUF_SIZE 2048 +#else +#define SETTINGS_STACK_BUF_SIZE 3096 +#endif #ifdef WLED_USE_ETHERNET #define E131_MAX_UNIVERSE_COUNT 20 diff --git a/wled00/wled.cpp b/wled00/wled.cpp index 8bb5b1864..0c2910dc1 100644 --- a/wled00/wled.cpp +++ b/wled00/wled.cpp @@ -42,7 +42,7 @@ bool oappendi(int i) bool oappend(const char* txt) { uint16_t len = strlen(txt); - if (olen + len >= OMAX) + if (olen + len >= SETTINGS_STACK_BUF_SIZE) return false; // buffer full strcpy(obuf + olen, txt); olen += len; diff --git a/wled00/wled_server.cpp b/wled00/wled_server.cpp index 908c3a4ea..04147827c 100644 --- a/wled00/wled_server.cpp +++ b/wled00/wled_server.cpp @@ -362,9 +362,10 @@ void serveMessage(AsyncWebServerRequest* request, uint16_t code, const String& h String settingsProcessor(const String& var) { if (var == "CSS") { - char buf[2048]; + char buf[SETTINGS_STACK_BUF_SIZE]; buf[0] = 0; getSettingsJS(optionType, buf); + //Serial.println(uxTaskGetStackHighWaterMark(NULL)); return String(buf); }