# # # patch "win32/process.cc" # from [343c1c8111ae101e9326d61df86cf27a82c82d04] # to [465f87caf7484d26f865ead75c383c36f10c9f91] # ============================================================ --- win32/process.cc 343c1c8111ae101e9326d61df86cf27a82c82d04 +++ win32/process.cc 465f87caf7484d26f865ead75c383c36f10c9f91 @@ -176,20 +176,20 @@ redir::redir(int which, char const * fil what = -1; return; } - HANDLE file; SECURITY_ATTRIBUTES sa; + memset(&sa, 0, sizeof(sa)); sa.nLength = sizeof(SECURITY_ATTRIBUTES); sa.lpSecurityDescriptor = 0; sa.bInheritHandle = true; - file = CreateFile(filename, - (which == 0 ? GENERIC_READ : GENERIC_WRITE), - FILE_SHARE_READ, - &sa, - (which == 0 ? OPEN_EXISTING : CREATE_ALWAYS), - FILE_ATTRIBUTE_NORMAL, - NULL); - switch(which) + HANDLE file = CreateFile(filename, + (which == 0 ? GENERIC_READ : GENERIC_WRITE), + FILE_SHARE_READ, + &sa, + (which == 0 ? OPEN_EXISTING : CREATE_ALWAYS), + FILE_ATTRIBUTE_NORMAL, + NULL); + switch (which) { case 0: saved = GetStdHandle(STD_INPUT_HANDLE); @@ -259,6 +259,7 @@ process_wait(pid_t pid, int * res, int t CloseHandle(hProcess); /* May well not work, but won't harm */ return -1; } + I(res); if (GetExitCodeProcess(hProcess, static_cast(res)) == 0) *res = -1; CloseHandle(hProcess); /* Let the process die */