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.AttachToCurrentConsole
which previously would continue to run if the current process has a console. - Note, for a graceful shutdown, you should always perform
WaitForExit
on child processes.
- This especially affects child processes created with
Bugfixes
- (Windows)
ChildProcessFlags.AttachToCurrentConsole
now 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.exe
now 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
IChildProcess
objects.- Due to job objects not being correctly closed.
- If you dispose an
IChildProcess
object 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 theIChildProcess
object. - 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.DisableArgumentQuoting
now 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_SUSPENDED
flag