Commit 2a42952281459d8d2b173f154227c103276016cf

Ryan C. Gordon 2022-04-27T08:06:28

log: Don't stack-allocate the message buffer. It's 4 kilobytes, so I could see this failing if you have a thread with a tiny stack that unexpectedly logs something.

diff --git a/src/SDL_log.c b/src/SDL_log.c
index 4f820ff..dfbaca4 100644
--- a/src/SDL_log.c
+++ b/src/SDL_log.c
@@ -282,8 +282,7 @@ SDL_LogMessageV(int category, SDL_LogPriority priority, const char *fmt, va_list
         return;
     }
 
-    /* !!! FIXME: why not just "char message[SDL_MAX_LOG_MESSAGE];" ? */
-    message = SDL_stack_alloc(char, SDL_MAX_LOG_MESSAGE);
+    message = (char *) SDL_malloc(SDL_MAX_LOG_MESSAGE);
     if (!message) {
         return;
     }
@@ -300,7 +299,7 @@ SDL_LogMessageV(int category, SDL_LogPriority priority, const char *fmt, va_list
     }
 
     SDL_log_function(SDL_log_userdata, category, priority, message);
-    SDL_stack_free(message);
+    SDL_free(message);
 }
 
 #if defined(__WIN32__) && !defined(HAVE_STDIO_H) && !defined(__WINRT__)