summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@theqtcompany.com>2015-05-12 17:11:00 +0200
committerFriedemann Kleint <Friedemann.Kleint@theqtcompany.com>2015-05-13 08:41:51 +0000
commitd14397b7298879e260bc7218a5f7539b6b94a2cf (patch)
tree0a06b129861ca9f652ca9a8c00c61d8c5a956d5a
parent3eca75de67b3fd2c890715b30c7899cebc096fe9 (diff)
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 <null> becomes: argv[] = app some_arg <null> some_arg <null> Terminate deletion when encountering the null pointer. Change-Id: I5279955b6bd463f5858d6e5e8e16a1f5d0945652 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
-rw-r--r--src/winmain/qtmain_win.cpp2
1 files changed, 1 insertions, 1 deletions
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;