Shared/Logs: Fix crash in Console log output

Correctly handle the return value of vsnprintf() which returns -1 if the buffer is too small http://msdn.microsoft.com/en-us/library/1kt27hek.aspx . In this case just truncate the output.
This caused a crash on character delete if Logger.entities.player.dump was enabled and set to 3.
Fixes #11539
This commit is contained in:
jackpoz
2014-01-31 22:11:49 +01:00
parent 68d48ecbd1
commit b054275fb2

View File

@@ -510,6 +510,9 @@ void vutf8printf(FILE* out, const char *str, va_list* ap)
wchar_t wtemp_buf[32*1024];
size_t temp_len = vsnprintf(temp_buf, 32*1024, str, *ap);
//vsnprintf returns -1 if the buffer is too small
if (temp_len == size_t(-1))
temp_len = 32*1024-1;
size_t wtemp_len = 32*1024-1;
Utf8toWStr(temp_buf, temp_len, wtemp_buf, wtemp_len);