$OpenBSD: patch-log_c,v 1.1 2010/03/20 21:32:23 kili Exp $

From upstream darcs repository.

--- log.c.orig	Tue Jan  8 13:56:45 2008
+++ log.c	Wed Dec  2 18:33:40 2009
@@ -279,11 +279,14 @@ static void
 accumulateSyslogV(int type, const char *f, va_list args)
 {
     int rc;
+    va_list args_copy;
 
  again:
+    va_copy(args_copy, args);
     rc = vsnprintf(syslogBuf + syslogBufLength,
                    syslogBufSize - syslogBufLength,
-                   f, args);
+                   f, args_copy);
+    va_end(args_copy);
 
     if(rc < 0 || rc >= syslogBufSize - syslogBufLength) {
         rc = expandSyslog(rc);
@@ -372,7 +375,12 @@ really_do_log_v(int type, const char *f, va_list args)
 {
     if(type & LOGGING_MAX & logLevel) {
         if(logF)
-            vfprintf(logF, f, args);
+        {
+            va_list args_copy;
+            va_copy(args_copy, args);
+            vfprintf(logF, f, args_copy);
+            va_end(args_copy);
+        }
 #ifdef HAVE_SYSLOG
         if(logSyslog)
             accumulateSyslogV(type, f, args);
@@ -399,8 +407,11 @@ really_do_log_error_v(int type, int e, const char *f, 
             es = "Unknown error";
 
         if(logF) {
-            vfprintf(logF, f, args);
+            va_list args_copy;
+            va_copy(args_copy, args);
+            vfprintf(logF, f, args_copy);
             fprintf(logF, ": %s\n", es);
+            va_end(args_copy);
         }
 #ifdef HAVE_SYSLOG
         if(logSyslog) {
