Releases: asmichi/ChildProcess
Releases · asmichi/ChildProcess
v0.18.0 release
v0.17.0
Binary Breaking Changes
- (Windows) Disposing
IChildProcess(including the death of the current process) now kills (equivalent to callingTerminateProcess) the child process by default. This behavior can be disabled withChildProcessFlags.DisableKillOnDispose.- This especially affects child processes created with
ChildProcessFlags.AttachToCurrentConsolewhich previously would continue to run if the current process has a console. - Note, for a graceful shutdown, you should always perform
WaitForExiton child processes.
- This especially affects child processes created with
Bugfixes
- (Windows)
ChildProcessFlags.AttachToCurrentConsolenow correctly attaches child processes to the current console even when the current process is created withCREATE_NO_WINDOW(i.e. with an invisible console window).
v0.16.0
To mitigate the "BatBadBut vulnerability," this release introduces a significant breaking change that restricts execution of cmd.exe.
For details, refer to the description of ChildProcessStartingBlockedException. For background information, refer to the document on the "BatBadBut vulnerability": https://flatt.tech/research/posts/batbadbut-you-cant-securely-execute-commands-on-windows/
Binary Breaking Changes
- (Windows) Executing
cmd.exenow requiresChildProcessFlags.DisableArgumentQuoting. - (Windows) Batch files (
*.bat/*.cmd) can no longer be executed.
v0.15.0
Bug Fixes
- Fix an issue that causes a child process to be terminated on Windows <=1809 even when it is attached to the current console.
- (Windows) Fix an issue that causes child processes to be killed at an unpredictable timing (i.e. on GC) after disposal of corresponding
IChildProcessobjects.- Due to job objects not being correctly closed.
- If you dispose an
IChildProcessobject without first performingWaitForExit, and if the child process is attached to the current console (i.e. no pseudo console), the child process will not be killed on disposing theIChildProcessobject. - Even if the child process is not attached to the current console (i.e. but to a pseudo console), the child process may be incorrectly given time to react
CTRL_CLOSE_EVENT.
v0.14.0
Binary Breaking Changes
- (Non-Windows)
ChildProcessFlags.DisableArgumentQuotingnow results in aPlatformNotSupportedException.
New Features
- (Windows) Add the ability to obtain the process handle and the primary thread handle of the child process:
ChildProcessFlags.EnableHandle,IChildProcess.Handle,IChildProcess.PrimaryThreadHandle - (Windows) Add the ability to create the child process with the
CREATE_SUSPENDEDflag