An application was spawning a Unix process with CreateProcess (which returned success only when the stack was favorable; see the first patch) and then closing the handles from the PROCESS_INFORMATION, which were garbage. That obviously caused havoc elsewhere if those garbage values happened to be valid handles.
It's not quite clear to me what the "right" thing to do is when a Unix process is created this way, since it's kind of a hack. But we already zero out the PS_CREATE_INFO in NtCreateUserProcess, so zeroing the handles seems in keeping with that.