Commit 708def87f318398c9b3c473148c23665eaaf71ea

Sam Lantinga 2016-10-01T11:48:15

Fixed bug 3338 - console_wmain doesn't null terminate the argv array Simon Hug The function console_wmain in src/main/windows/SDL_windows_main.c does not null terminate the argument list it is creating. As specified by the C standard, "argv[argc] shall be a null pointer." The SDLTest framework makes use of that null pointer and some test programs can cause an access violation because it's missing.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
diff --git a/src/main/windows/SDL_windows_main.c b/src/main/windows/SDL_windows_main.c
index e637808..67ef98e 100644
--- a/src/main/windows/SDL_windows_main.c
+++ b/src/main/windows/SDL_windows_main.c
@@ -141,12 +141,13 @@ int
 console_wmain(int argc, wchar_t *wargv[], wchar_t *wenvp)
 {
     int retval = 0;
-    char **argv = SDL_stack_alloc(char*, argc);
+    char **argv = SDL_stack_alloc(char*, argc + 1);
     int i;
 
     for (i = 0; i < argc; ++i) {
         argv[i] = WIN_StringToUTF8(wargv[i]);
     }
+    argv[argc] = NULL;
 
     retval = main_utf8(argc, argv);