~ chicken-core (chicken-5) 514c250a4a9cdde1c61009ce7fbd84259a5f11b4
commit 514c250a4a9cdde1c61009ce7fbd84259a5f11b4 Author: felix <felix@call-with-current-continuation.org> AuthorDate: Wed Jun 11 14:41:58 2025 +0200 Commit: felix <felix@call-with-current-continuation.org> CommitDate: Wed Jun 11 14:41:58 2025 +0200 some safety measures in chicken-do.c for Windows diff --git a/chicken-do.c b/chicken-do.c index 12253d75..215253ae 100644 --- a/chicken-do.c +++ b/chicken-do.c @@ -82,6 +82,8 @@ static int execute(char **argv) static TCHAR cmdline[ MAX_COMMAND_LEN ]; static int len; + ZeroMemory(&process_info, sizeof(PROCESS_INFORMATION)); + ZeroMemory(&startup_info, sizeof(STARTUPINFO)); startup_info.cb = sizeof(STARTUPINFO); /* quote command arguments */ @@ -93,16 +95,16 @@ static int execute(char **argv) } } - if(!CreateProcess(NULL, cmdline, NULL, NULL, TRUE, + if(!CreateProcess(NULL, cmdline, NULL, NULL, TRUE, NORMAL_PRIORITY_CLASS, NULL, NULL, &startup_info, &process_info)) { fprintf(stderr, "creating subprocess failed\n"); exit(1); } - CloseHandle(process_info.hThread); - WaitForSingleObject(process_info.hProcess, INFINITE); + CloseHandle(process_info.hThread); + CloseHandle(process_info.hProcess); DWORD code; if(!GetExitCodeProcess(process_info.hProcess, &code)) {Trap