Procházet zdrojové kódy

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.
Sam Lantinga před 10 roky
rodič
revize
708def87f3
1 změnil soubory, kde provedl 2 přidání a 1 odebrání
  1. 2 1
      src/main/windows/SDL_windows_main.c

+ 2 - 1
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);