diff --git a/src/details/os_windows.cpp b/src/details/os_windows.cpp index 3267283f..2f0f1bde 100644 --- a/src/details/os_windows.cpp +++ b/src/details/os_windows.cpp @@ -200,7 +200,7 @@ bool in_terminal(FILE *file) noexcept { return ::_isatty(_fileno(file)) != 0; } #if defined(SPDLOG_WCHAR_FILENAMES) void wstr_to_utf8buf(wstring_view_t wstr, memory_buf_t &target) { - if (wstr.size() > static_cast((std::numeric_limits::max)()) / 2 - 1) { + if (wstr.size() > static_cast((std::numeric_limits::max)()) / 4 - 1) { throw_spdlog_ex("UTF-16 string is too big to be converted to UTF-8"); } @@ -211,7 +211,7 @@ void wstr_to_utf8buf(wstring_view_t wstr, memory_buf_t &target) { } int result_size = static_cast(target.capacity()); - if ((wstr_size + 1) * 2 > result_size) { + if ((wstr_size + 1) * 4 > result_size) { result_size = ::WideCharToMultiByte(CP_UTF8, 0, wstr.data(), wstr_size, NULL, 0, NULL, NULL); }