Commit d3b2e62e801e623069fda22b406e1cfb81d67ff2

Sam Lantinga 2022-06-29T17:25:43

Merge commit 'd4e6047e3cc73698a0d6b3b4a2ce7b9b5e025b2f' into main

diff --git a/src/SDL_error.c b/src/SDL_error.c
index e3501e6..1ca460a 100644
--- a/src/SDL_error.c
+++ b/src/SDL_error.c
@@ -38,16 +38,20 @@ SDL_SetError(SDL_PRINTF_FORMAT_STRING const char *fmt, ...)
 
         va_start(ap, fmt);
         result = SDL_vsnprintf(error->str, error->len, fmt, ap);
+        va_end(ap);
+
         if (result >= 0 && (size_t)result >= error->len && error->realloc_func) {
             size_t len = (size_t)result + 1;
             char *str = (char *)error->realloc_func(error->str, len);
             if (str) {
                 error->str = str;
                 error->len = len;
+                va_start(ap, fmt);
                 SDL_vsnprintf(error->str, error->len, fmt, ap);
+                va_end(ap);
             }
         }
-        va_end(ap);
+
 
         if (SDL_LogGetPriority(SDL_LOG_CATEGORY_ERROR) <= SDL_LOG_PRIORITY_DEBUG) {
             /* If we are in debug mode, print out the error message */