* pinfo.h (pinfo::reattach): Only set destroy to false when proc_subproc
succeeds. Return true for success. * sigproc.cc (child_info_spawn::reattach_children): Try harder to clean up on error by detecting reattach failures too.
This commit is contained in:
@@ -866,10 +866,13 @@ child_info_spawn::reattach_children ()
|
||||
false, DUPLICATE_SAME_ACCESS))
|
||||
debug_printf ("couldn't duplicate parent %p handles for forked children after exec, %E",
|
||||
children[i].rd_proc_pipe);
|
||||
else if ((p.hProcess = OpenProcess (PROCESS_QUERY_INFORMATION, false, p->pid)))
|
||||
p.reattach ();
|
||||
else
|
||||
else if (!(p.hProcess = OpenProcess (PROCESS_QUERY_INFORMATION, false, p->pid)))
|
||||
CloseHandle (p.rd_proc_pipe);
|
||||
else if (!p.reattach ())
|
||||
{
|
||||
CloseHandle (p.hProcess);
|
||||
CloseHandle (p.rd_proc_pipe);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user