diff --git a/wled00/util.cpp b/wled00/util.cpp index fb8b5e59..520f4bb4 100644 --- a/wled00/util.cpp +++ b/wled00/util.cpp @@ -148,11 +148,14 @@ bool oappendi(int i) bool oappend(const char* txt) { uint16_t len = strlen(txt); - if (olen + len >= SETTINGS_STACK_BUF_SIZE) { - USER_PRINT(F("oappend() error: buffer full. Increase SETTINGS_STACK_BUF_SIZE for ")); - USER_PRINTF("%2u bytes \t\"", len /*1 + olen + len - SETTINGS_STACK_BUF_SIZE*/); - USER_PRINT(txt); - USER_PRINTLN(F("\"")); + if ((obuf == nullptr) || (olen + len >= SETTINGS_STACK_BUF_SIZE)) { // sanity checks + if (obuf == nullptr) { USER_PRINTLN(F("oappend() error: obuf == nullptr.")); + } else { + USER_PRINT(F("oappend() error: buffer full. Increase SETTINGS_STACK_BUF_SIZE for ")); + USER_PRINTF("%2u bytes \t\"", len /*1 + olen + len - SETTINGS_STACK_BUF_SIZE*/); + USER_PRINT(txt); + USER_PRINTLN(F("\"")); + } return false; // buffer full } strcpy(obuf + olen, txt);