From d14397b7298879e260bc7218a5f7539b6b94a2cf Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Tue, 12 May 2015 17:11:00 +0200 Subject: Windows: Fix exit crash of GUI applications when deleting argv[]. When passing Qt arguments followed by normal arguments, a double deletion may occur due to Qt shifting argv. For example: argv[] = app -qwindowgeometry +50+50 some_arg becomes: argv[] = app some_arg some_arg Terminate deletion when encountering the null pointer. Change-Id: I5279955b6bd463f5858d6e5e8e16a1f5d0945652 Reviewed-by: Joerg Bornemann --- src/winmain/qtmain_win.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/winmain/qtmain_win.cpp b/src/winmain/qtmain_win.cpp index 25b79543ba..459ca114a6 100644 --- a/src/winmain/qtmain_win.cpp +++ b/src/winmain/qtmain_win.cpp @@ -111,7 +111,7 @@ extern "C" int APIENTRY WinMain(HINSTANCE, HINSTANCE, LPSTR /*cmdParamarg*/, int argv[argc] = Q_NULLPTR; LocalFree(argvW); const int exitCode = main(argc, argv); - for (int i = 0; i < argc; ++i) + for (int i = 0; i < argc && argv[i]; ++i) delete [] argv[i]; delete [] argv; return exitCode; -- cgit v1.2.3