From 3477d11d9843cc5eef8498f958bcd2418d41526f Mon Sep 17 00:00:00 2001
From: deuce <>
Date: Sun, 8 Jul 2007 10:17:37 +0000
Subject: [PATCH] Cannot legally use the same va_list twice and expect it to
 still work. Make a copy before the second use.

The old code failed on Linux x86_64
---
 src/conio/ciolib.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/conio/ciolib.c b/src/conio/ciolib.c
index 0bce2a6d3b..91b1a6e9b2 100644
--- a/src/conio/ciolib.c
+++ b/src/conio/ciolib.c
@@ -789,6 +789,7 @@ CIOLIBEXPORT int CIOLIBCALL ciolib_cprintf(char *fmat, ...)
 	char	str[16384];
 #else
 	char	*str;
+	va_list argptr2;
 #endif
 
 	CIOLIB_INIT();
@@ -797,13 +798,14 @@ CIOLIBEXPORT int CIOLIBCALL ciolib_cprintf(char *fmat, ...)
 #ifdef _MSC_VER
 	ret=_vsnprintf(str,sizeof(str)-1,fmat,argptr);
 #else
+	va_copy(argptr2, argptr);
     ret=vsnprintf(NULL,0,fmat,argptr);
 	if(ret<0)
 		return(EOF);
 	str=(char *)alloca(ret+1);
 	if(str==NULL)
 		return(EOF);
-	ret=vsprintf(str,fmat,argptr);
+	ret=vsprintf(str,fmat,argptr2);
 #endif
     va_end(argptr);
 	if(ret>=0)
-- 
GitLab