diff --git a/wled00/util.cpp b/wled00/util.cpp index a913feed..8ae062ae 100644 --- a/wled00/util.cpp +++ b/wled00/util.cpp @@ -342,10 +342,7 @@ uint8_t extractModeSlider(uint8_t mode, uint8_t slider, char *dest, uint8_t maxL } else { // WLEDMM bugfix for WLED-MM #272 // names.substring(...).c_str() returns a pointer to a temporary; it’s invalid by the next statement. Added result buffer "sub" to avoid use-after-free - // if (nameEnd<0) tmpstr = names.substring(nameBegin).c_str(); // did not find ",", last name? - // else tmpstr = names.substring(nameBegin, nameEnd).c_str(); - // strlcpy(dest, tmpstr, maxLen); // copy the name into buffer (replacing previous) - String sub = (nameEnd<0) ? names.substring(nameBegin) : names.substring(nameBegin, nameEnd); + String sub = (nameEnd<0) ? names.substring(nameBegin) : names.substring(nameBegin, nameEnd); // special handling in case we did not find "," (last name) strlcpy(dest, sub.c_str(), maxLen); // copy the name into buffer (replacing previous) } }