diff --git a/wled00/FX_2Dfcn.cpp b/wled00/FX_2Dfcn.cpp index f2883a20..26417c65 100644 --- a/wled00/FX_2Dfcn.cpp +++ b/wled00/FX_2Dfcn.cpp @@ -899,7 +899,7 @@ void Segment::drawText(const unsigned char* text, size_t maxLen, int maxLetters, uint16_t decoded_text[WLED_MAX_SEGNAME_LEN+1] = { 0 }; // UTF-16 converted text. Cannot be longer than WLED_MAX_SEGNAME_LEN size_t utf16_index = 0; for(const unsigned char* now = text; now != nullptr && now[0] != '\0'; now = nextUnicode(now, maxLen)) { - if (utf16_index <= WLED_MAX_SEGNAME_LEN) { + if (utf16_index < WLED_MAX_SEGNAME_LEN) { decoded_text[utf16_index] = unicodeToWchar16(now, maxLen); // UTF-8 decode into decoded_text decoded_text[utf16_index] = wchar16ToCodepage437(decoded_text[utf16_index]); // decoded_text to CP437 (in-place conversion) // toDo: ensure that decoded_text[i] is between console_font_YxZ_first and console_font_YxZ_last diff --git a/wled00/json.cpp b/wled00/json.cpp index 59b646e7..5b33f6ea 100644 --- a/wled00/json.cpp +++ b/wled00/json.cpp @@ -149,6 +149,7 @@ bool deserializeSegment(JsonObject elem, byte it, byte presetId) seg.name = new(std::nothrow) char[len+1]; if (seg.name) strlcpy(seg.name, name, len+1); } else { + if (len > 0) { USER_PRINTF("! too-long segment name \"%s\" (%d chars) dropped.\n", name, len);} // but is empty (already deleted above) elem.remove("n"); }