Mercurial > vim
changeset 5627:f29febf858be v7.4.160
updated for version 7.4.160
Problem: Win32: Crash when executing external command.
Solution: Only close the handle when it was created. (Yasuhiro Matsumoto)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Fri, 24 Jan 2014 19:55:37 +0100 |
parents | 89b3a7ef9622 |
children | c9cad40b4181 |
files | src/os_win32.c src/version.c |
diffstat | 2 files changed, 5 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/os_win32.c +++ b/src/os_win32.c @@ -4627,6 +4627,7 @@ mch_call_shell( DWORD flags = CREATE_NEW_CONSOLE; char_u *p; + ZeroMemory(&si, sizeof(si)); si.cb = sizeof(si); si.lpReserved = NULL; si.lpDesktop = NULL; @@ -4723,9 +4724,9 @@ mch_call_shell( if (newcmd != cmdbase) vim_free(newcmd); - if (si.hStdInput != NULL) + if (si.dwFlags == STARTF_USESTDHANDLES && si.hStdInput != NULL) { - /* Close the handle to \\.\NUL */ + /* Close the handle to \\.\NUL created above. */ CloseHandle(si.hStdInput); } /* Close the handles to the subprocess, so that it goes away */