diff options
author | Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> | 2015-05-12 17:11:00 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> | 2015-05-13 08:41:51 +0000 |
commit | d14397b7298879e260bc7218a5f7539b6b94a2cf (patch) | |
tree | 0a06b129861ca9f652ca9a8c00c61d8c5a956d5a /src/winmain/qtmain_win.cpp | |
parent | 3eca75de67b3fd2c890715b30c7899cebc096fe9 (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>
Diffstat (limited to 'src/winmain/qtmain_win.cpp')
-rw-r--r-- | src/winmain/qtmain_win.cpp | 2 |
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; |