summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--winsup/cygwin/ChangeLog5
-rw-r--r--winsup/cygwin/sigproc.h4
2 files changed, 8 insertions, 1 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index e507645e3..dd9692178 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,5 +1,10 @@
2011-12-10 Christopher Faylor <me.cygwin2011@cgf.cx>
+ * sigproc.h (cygwait): Delete duplicate va_start and add matching
+ va_end.
+
+2011-12-10 Christopher Faylor <me.cygwin2011@cgf.cx>
+
* sigproc.h (cygwait): Tweak test for cancellable event to make it a
little more clear.
diff --git a/winsup/cygwin/sigproc.h b/winsup/cygwin/sigproc.h
index 6a8d7aec2..b0817360c 100644
--- a/winsup/cygwin/sigproc.h
+++ b/winsup/cygwin/sigproc.h
@@ -85,11 +85,13 @@ static inline DWORD
cygwait (DWORD n, DWORD howlong, ...)
{
va_list ap;
- va_start (ap, howlong);
HANDLE w4[n + 2];
+
va_start (ap, howlong);
for (unsigned i = 0; i < n; i++)
w4[i] = va_arg (ap, HANDLE);
+ va_end (ap);
+
w4[n++] = signal_arrived;
if ((w4[n] = pthread::get_cancel_event ()) != NULL)
n++;