# HG changeset patch # User rubidium42 # Date 2021-04-27 16:25:53 # Node ID ebbf39bd4458fe612493cda94c57fc6191bb4f48 # Parent 75b6f86a0de0f198026b73d0c417faf4fb086e18 Fix: truncating strings in settings could leave invalid Utf8 characters diff --git a/src/settings.cpp b/src/settings.cpp --- a/src/settings.cpp +++ b/src/settings.cpp @@ -506,7 +506,12 @@ static void Write_ValidateString(void *p switch (GetVarMemType(sld->conv)) { case SLE_VAR_STRB: case SLE_VAR_STRBQ: - if (p != nullptr) strecpy((char*)ptr, (const char*)p, (char*)ptr + sld->length - 1); + if (p != nullptr) { + char *begin = (char*)ptr; + char *end = begin + sld->length - 1; + strecpy(begin, p, end); + str_validate(begin, end, SVS_NONE); + } break; case SLE_VAR_STR: