diff --git a/Source/Project64-core/N64System/Recompiler/RecompilerCodeLog.cpp b/Source/Project64-core/N64System/Recompiler/RecompilerCodeLog.cpp index d9becae37..be46f7c9f 100644 --- a/Source/Project64-core/N64System/Recompiler/RecompilerCodeLog.cpp +++ b/Source/Project64-core/N64System/Recompiler/RecompilerCodeLog.cpp @@ -23,12 +23,19 @@ void Recompiler_Log_Message(const char * strFormat, ...) { va_list args; va_start(args, strFormat); - size_t nlen = _vscprintf(strFormat, args) + 3; - char * buffer = (char *)alloca(nlen * sizeof(char)); + size_t nlen = _vscprintf(strFormat, args); + char * buffer = (char *)alloca((nlen + 3) * sizeof(char)); if (buffer != NULL) { - buffer[nlen - 1] = 0; - vsprintf(buffer, strFormat, args); + if (nlen > 0) + { + vsnprintf(buffer, nlen, strFormat, args); + buffer[nlen - 1] = '\0'; + } + else + { + buffer[0] = '\0'; + } strcat(buffer, "\r\n"); g_CPULogFile->Log(buffer); }