Skip to content
Permalink
Browse files

Fixed bug 1082 - Crash on startup when using empty command-line argum…

…ent.

yrizoud@gmail.com 2010-12-01 07:34:48 PST
Run a SDL program with "" as one of the command-line arguments: crash on
startup.

Program received signal SIGSEGV, Segmentation fault.
0x0047b2ea in ParseCommandLine (cmdline=<value optimized out>, argv=0x0)
    at ./src/main/win32/SDL_win32_main.c:100
100 while ( *bufp && ( *bufp != '"' || *lastp == '\\' ) ) {
(gdb) bt
#0  0x0047b2ea in ParseCommandLine (cmdline=<value optimized out>, argv=0x0)
    at ./src/main/win32/SDL_win32_main.c:100
#1  0x0047b5bb in WinMain@16 (hInst=0x400000, hPrev=0x0,
    szCmdLine=0x81c530e0 "a \"\" b", sw=10)
    at ./src/main/win32/SDL_win32_main.c:374
#2  0x0047af28 in main ()

---

The problem is that on Windows when you make a shortcut, and want it to accept
drag-and-dropped files, the good way to make it work work with files that have
spaces in their names or paths is make this argument "%1" (with the surrounding
quotes). But then when you run it without dropping a file into it, it's
resolved as "", and triggers this bug.
  • Loading branch information
slouken committed Dec 30, 2011
1 parent d239cb6 commit 16569feb30807a2ee0c0fcf639a5c0c150b5530e
Showing with 1 addition and 1 deletion.
  1. +1 −1 src/main/win32/SDL_win32_main.c
@@ -98,7 +98,7 @@ static int ParseCommandLine(char *cmdline, char **argv)
++argc;
}
/* Skip over word */
while ( *bufp && ( *bufp != '"' || *lastp == '\\' ) ) {
while ( *bufp && ( *bufp != '"' || (lastp && *lastp == '\\') ) ) {
lastp = bufp;
++bufp;
}

0 comments on commit 16569fe

Please sign in to comment.