diff --git a/Engine/source/console/CMDscan.cpp b/Engine/source/console/CMDscan.cpp index 28b4815f1..8469028f4 100644 --- a/Engine/source/console/CMDscan.cpp +++ b/Engine/source/console/CMDscan.cpp @@ -2190,6 +2190,7 @@ void CMDerror(char *format, ...) #else vsnprintf( tempBuf, BUFMAX, format, args ); #endif + va_end(args); if(fileName) { diff --git a/Engine/source/console/CMDscan.l b/Engine/source/console/CMDscan.l index cef682e89..673d6c664 100644 --- a/Engine/source/console/CMDscan.l +++ b/Engine/source/console/CMDscan.l @@ -250,6 +250,7 @@ void CMDerror(char *format, ...) #else vsnprintf( tempBuf, BUFMAX, format, args ); #endif + va_end(args); if(fileName) { diff --git a/Engine/source/console/console.cpp b/Engine/source/console/console.cpp index 72b067b1a..a551452fb 100644 --- a/Engine/source/console/console.cpp +++ b/Engine/source/console/console.cpp @@ -1162,6 +1162,7 @@ const char *evaluatef(const char* string, ...) va_list args; va_start(args, string); dVsprintf(buffer, sizeof(buffer), string, args); + va_end(args); CodeBlock *newCodeBlock = new CodeBlock(); return newCodeBlock->compileExec(NULL, buffer, false, 0); } diff --git a/Engine/source/core/strings/stringFunctions.cpp b/Engine/source/core/strings/stringFunctions.cpp index 6807dc1e2..7feb50e02 100644 --- a/Engine/source/core/strings/stringFunctions.cpp +++ b/Engine/source/core/strings/stringFunctions.cpp @@ -389,6 +389,7 @@ void dPrintf(const char *format, ...) va_list args; va_start(args, format); vprintf(format, args); + va_end(args); } S32 dVprintf(const char *format, va_list arglist) @@ -402,6 +403,7 @@ S32 dSprintf(char *buffer, U32 bufferSize, const char *format, ...) va_start(args, format); S32 len = vsnprintf(buffer, bufferSize, format, args); + va_end(args); AssertWarn( len < bufferSize, "Buffer too small in call to dSprintf!" ); @@ -470,7 +472,9 @@ S32 dSscanf(const char *buffer, const char *format, ...) #else va_list args; va_start(args, format); - return vsscanf(buffer, format, args); + int res = vsscanf(buffer, format, args); + va_end(args); + return res; #endif } diff --git a/Engine/source/platform/platformAssert.cpp b/Engine/source/platform/platformAssert.cpp index 7e1d3b93a..0a92bf1a1 100644 --- a/Engine/source/platform/platformAssert.cpp +++ b/Engine/source/platform/platformAssert.cpp @@ -179,6 +179,7 @@ const char* avar(const char *message, ...) va_list args; va_start(args, message); dVsprintf(buffer, sizeof(buffer), message, args); + va_end(args); return( buffer ); } diff --git a/Engine/source/platformMac/macCarbStrings.cpp b/Engine/source/platformMac/macCarbStrings.cpp index 1f3ecb0c9..7e15da227 100644 --- a/Engine/source/platformMac/macCarbStrings.cpp +++ b/Engine/source/platformMac/macCarbStrings.cpp @@ -45,7 +45,7 @@ int dSprintf(char *buffer, dsize_t /*bufferSize*/, const char *format, ...) va_list args; va_start(args, format); S32 len = vsprintf(buffer, format, args); - + va_end(args); return (len); } diff --git a/Engine/source/platformX86UNIX/x86UNIXConsole.cpp b/Engine/source/platformX86UNIX/x86UNIXConsole.cpp index 5e8f41f85..9dee9d263 100644 --- a/Engine/source/platformX86UNIX/x86UNIXConsole.cpp +++ b/Engine/source/platformX86UNIX/x86UNIXConsole.cpp @@ -174,6 +174,7 @@ void StdConsole::printf(const char *s, ...) va_list args; va_start(args, s); vsnprintf(buffer, BufSize, s, args); + va_end(args); // Replace tabs with carats, like the "real" console does. char *pos = buffer; while (*pos) {