From 9626422634499a35ec5dfe45ea6a0f04538cac20 Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Thu, 27 Jun 2013 17:00:12 +0000 Subject: [PATCH] * dcrt0.cc (child_info_fork::alloc_stack): Fix a comparison to avoid taking 4K more stack in forked child. * fork.cc (frok::parent): Print child exit code in hex if sync failed. --- winsup/cygwin/ChangeLog | 6 ++++++ winsup/cygwin/dcrt0.cc | 2 +- winsup/cygwin/fork.cc | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 504cad5f4..8f4179095 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,9 @@ +2013-06-27 Corinna Vinschen + + * dcrt0.cc (child_info_fork::alloc_stack): Fix a comparison to avoid + taking 4K more stack in forked child. + * fork.cc (frok::parent): Print child exit code in hex if sync failed. + 2013-06-24 Yaakov Selkowitz * common.din (rawmemchr): Export. diff --git a/winsup/cygwin/dcrt0.cc b/winsup/cygwin/dcrt0.cc index 172610ffc..255ca5c32 100644 --- a/winsup/cygwin/dcrt0.cc +++ b/winsup/cygwin/dcrt0.cc @@ -482,7 +482,7 @@ child_info_fork::alloc_stack () else { char *st = (char *) stacktop; - while (_tlstop >= st) + while (_tlstop > st) stackp = getstack (stackp); stackaddr = 0; /* This only affects forked children of a process started from a native diff --git a/winsup/cygwin/fork.cc b/winsup/cygwin/fork.cc index f7b9aa880..58b109fa9 100644 --- a/winsup/cygwin/fork.cc +++ b/winsup/cygwin/fork.cc @@ -398,7 +398,7 @@ frok::parent (volatile char * volatile stack_here) /* Wait for subproc to initialize itself. */ if (!ch.sync (pi.dwProcessId, hchild, FORK_WAIT_TIMEOUT)) { - if (!error ("forked process %u died unexpectedly, retry %d, exit code %d", + if (!error ("forked process %u died unexpectedly, retry %d, exit code %y", pi.dwProcessId, ch.retry, ch.exit_code)) continue; this_errno = EAGAIN;