]> granicus.if.org Git - gc/commitdiff
test_cpp: Fix WinMain to prevent SEGV if zero arguments passed (MinGW)
authorIvan Maidanski <ivmai@mail.ru>
Sat, 16 Jun 2012 08:54:36 +0000 (12:54 +0400)
committerIvan Maidanski <ivmai@mail.ru>
Wed, 27 Jun 2012 19:22:17 +0000 (23:22 +0400)
* tests/test_cpp.cc (WinMain): Prevent SEGV in strtok() by checking
"cmd" WinMain argument for NULL (in that case "argc" local variable is
set to 0).

tests/test_cpp.cc

index d463b345960bc69a245ff702336a8a4041a9f751..2d2c3cf8792afe7b7f6e68457ba555fed2e617ec 100644 (file)
@@ -193,10 +193,11 @@ void* Undisguise( GC_word i ) {
 int APIENTRY WinMain(
     HINSTANCE instance, HINSTANCE prev, LPSTR cmd, int cmdShow )
 {
-    int argc;
+    int argc = 0;
     char* argv[ 3 ];
 
-    for (argc = 1; argc < (int)(sizeof(argv) / sizeof(argv[0])); argc++) {
+    if (cmd != 0)
+      for (argc = 1; argc < (int)(sizeof(argv) / sizeof(argv[0])); argc++) {
         argv[ argc ] = strtok( argc == 1 ? cmd : 0, " \t" );
         if (0 == argv[ argc ]) break;}
 #elif defined(MACOS)