mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-30 13:47:23 +01:00
Core/Utils: Handle UTF-8 conversion errors
Replace the output string when a UTF-8 conversion error happen with an error message instead of using an empty string, swallowing any message that the caller wanted to log.
(cherry picked from commit bdb7e6e5e8)
This commit is contained in:
@@ -258,9 +258,23 @@ bool Utf8toWStr(char const* utf8str, size_t csize, wchar_t* wstr, size_t& wsize)
|
||||
}
|
||||
catch (std::exception const&)
|
||||
{
|
||||
if (wsize > 0)
|
||||
// Replace the converted string with an error message if there is enough space
|
||||
// Otherwise just return an empty string
|
||||
wchar_t const* errorMessage = L"An error occurred converting string from UTF-8 to WStr";
|
||||
size_t errorMessageLength = wcslen(errorMessage);
|
||||
if (wsize >= errorMessageLength)
|
||||
{
|
||||
wcscpy(wstr, errorMessage);
|
||||
wsize = wcslen(wstr);
|
||||
}
|
||||
else if (wsize > 0)
|
||||
{
|
||||
wstr[0] = L'\0';
|
||||
wsize = 0;
|
||||
wsize = 0;
|
||||
}
|
||||
else
|
||||
wsize = 0;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user