-
0e3ee215
by Tim Clem at 2025-08-26T21:28:30+02:00
ntdll: Initialize return value in fork_and_exec.
Otherwise, if the exec succeeds, the later read() will not actually
read anything (EOF since the other end of the pipe is closed), and
we'll returned the uninitialized value of `status`.
This was preventing NtCreateUserProcess for a Unix process from
returning successfully, depending on the state of the stack, even
if the fork/exec suceeded.
-
b8664060
by Tim Clem at 2025-08-26T21:28:30+02:00
ntdll: Zero the process and thread handles when creating a Unix process.
Otherwise we will return success while potentially leaving them with
garbage values, which the caller is likely to close.
-
32ab237d
by Tim Clem at 2025-08-26T21:28:30+02:00
kernelbase: Zero the RTL_USER_PROCESS_PARAMETERS in CreateProcessInternalW.
If we end up creating a Unix process, not all of the values in this
structure will (/can) be populated, and thus may be garbage.