From a7fdbdb9c409b6bf4ee3195c55fb514cf788b3c6 Mon Sep 17 00:00:00 2001 From: Ivan Maidanski Date: Sat, 16 Jun 2012 12:54:36 +0400 Subject: [PATCH] test_cpp: Fix WinMain to prevent SEGV if zero arguments passed (MinGW) * 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 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/test_cpp.cc b/tests/test_cpp.cc index 5197b0e4..f3340dbd 100644 --- a/tests/test_cpp.cc +++ b/tests/test_cpp.cc @@ -195,10 +195,11 @@ void* Undisguise( GC_word i ) { int APIENTRY WinMain( HINSTANCE instance ATTR_UNUSED, HINSTANCE prev ATTR_UNUSED, LPSTR cmd, int cmdShow ATTR_UNUSED ) { - 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) -- 2.50.1