From 6485bf0b339c5d12c462964a0553cfb827a6b874 Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Mon, 24 Oct 2005 15:17:54 +0000 Subject: [PATCH] * spawn.cc (spawn_guts): Don't leave the function with return inside pthread cleanup brackets. --- winsup/cygwin/ChangeLog | 5 +++++ winsup/cygwin/spawn.cc | 6 ++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index b873c49a3..52fc5e375 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +2005-10-24 Corinna Vinschen + + * spawn.cc (spawn_guts): Don't leave the function with return inside + pthread cleanup brackets. + 2005-10-24 Christopher Faylor * cygheap.h (cygheap_fdenum): Remove start_fd stuff. diff --git a/winsup/cygwin/spawn.cc b/winsup/cygwin/spawn.cc index b1cd0796a..352d408d1 100644 --- a/winsup/cygwin/spawn.cc +++ b/winsup/cygwin/spawn.cc @@ -546,7 +546,8 @@ spawn_guts (const char * prog_arg, const char *const *argv, { debug_printf ("Command line too long (>32K), return E2BIG"); set_errno (E2BIG); - return -1; + res = -1; + goto out; } } @@ -714,7 +715,8 @@ spawn_guts (const char * prog_arg, const char *const *argv, myself->sendsig = myself->exec_sendsig; myself->exec_sendsig = NULL; } - return -1; + res = -1; + goto out; } /* Fixup the parent data structures if needed and resume the child's