fix: overwrite on null terminator

This commit is contained in:
2026-03-16 17:43:20 +04:00
parent 182974d61a
commit a1ada5a792

View File

@@ -48,9 +48,9 @@ std::string utf8_from_wstring(const std::wstring &w) {
")"); ")");
} }
std::string out; std::string out;
out.resize(needed - 1); out.resize(needed);
int written = int written =
::WideCharToMultiByte(CP_UTF8, WC_ERR_INVALID_CHARS, w.c_str(), -1, out.data(), needed, nullptr, nullptr); ::WideCharToMultiByte(CP_UTF8, WC_ERR_INVALID_CHARS, w.c_str(), -1, out.data(), out.size(), nullptr, nullptr);
if (written <= 0) { if (written <= 0) {
throw std::runtime_error( throw std::runtime_error(
"WideCharToMultiByte convert failed, Error("s + windows_error_message(::GetLastError()) + ")" + "WideCharToMultiByte convert failed, Error("s + windows_error_message(::GetLastError()) + ")" +