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 2016-10-01 11:48:15 -07:00
parent 77305d47c2
commit 708def87f3
1 changed files with 2 additions and 1 deletions

View File

@ -141,12 +141,13 @@ int
console_wmain(int argc, wchar_t *wargv[], wchar_t *wenvp) console_wmain(int argc, wchar_t *wargv[], wchar_t *wenvp)
{ {
int retval = 0; int retval = 0;
char **argv = SDL_stack_alloc(char*, argc); char **argv = SDL_stack_alloc(char*, argc + 1);
int i; int i;
for (i = 0; i < argc; ++i) { for (i = 0; i < argc; ++i) {
argv[i] = WIN_StringToUTF8(wargv[i]); argv[i] = WIN_StringToUTF8(wargv[i]);
} }
argv[argc] = NULL;
retval = main_utf8(argc, argv); retval = main_utf8(argc, argv);