[25917] in CVS-changelog-for-Kerberos-V5
svn rev #25407: tools/gssmonger/trunk/gssmaggot/
daemon@ATHENA.MIT.EDU (ghudson@mit.edu)
Mon Oct 24 00:28:53 2011
Date: Mon, 24 Oct 2011 00:28:50 -0400
From: ghudson@mit.edu
Message-Id: <201110240428.p9O4SocP002751@drugstore.mit.edu>
To: cvs-krb5@mit.edu
Reply-To: krbdev@mit.edu
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: cvs-krb5-bounces@mit.edu
http://src.mit.edu/fisheye/changelog/krb5/?cs=25407
Commit By: ghudson
Log Message:
Fix a stdarg violation in ServerSendLogEntry().
Use va_copy to avoid using the same va_arg list twice. Also use a
more useful portability construction for va_copy (should work on C99
platforms and on MSVC).
Changed Files:
U tools/gssmonger/trunk/gssmaggot/logging.c
Modified: tools/gssmonger/trunk/gssmaggot/logging.c
===================================================================
--- tools/gssmonger/trunk/gssmaggot/logging.c 2011-10-21 23:15:27 UTC (rev 25406)
+++ tools/gssmonger/trunk/gssmaggot/logging.c 2011-10-24 04:28:50 UTC (rev 25407)
@@ -73,6 +73,10 @@
#include "server.h"
#include "extend.h"
+#ifndef va_copy
+#define va_copy(a, b) ((a) = (b)) /* Works on Windows */
+#endif
+
/*++**************************************************************
NAME: ExpandArgsToBuffer
@@ -124,18 +128,15 @@
Buffer = (LPSTR) pvTmp;
- #ifdef __va_copy
- __va_copy(vaTmp, InVa);
- #else /* __va_copy */
- vaTmp = InVa;
- #endif /* __va_copy */
+ va_copy(vaTmp, InVa);
- Buffer[ SizeAttempt-1 ] = '\0';
+ Buffer[ SizeAttempt-1 ] = '\0';
vsnprintf( Buffer,
SizeAttempt,
fmt,
vaTmp );
+ va_end(vaTmp);
if ( '\0' == Buffer[ SizeAttempt -1 ] ) {
*ppBuffer = Buffer;
@@ -211,6 +212,7 @@
#ifdef HACK_AROUND_LINUX_ALLOCATOR_BUG
CHAR buffer[ 100 ];
#endif
+ va_list vaTmp;
{
const char *basename = strrchr(file, '/');
@@ -221,9 +223,10 @@
printf( "%s:%ld: ", basename, line );
}
+ va_copy(vaTmp, va);
StringLength = vfprintf( stdout,
fmt,
- va );
+ vaTmp );
printf( "\n" );
_______________________________________________
cvs-krb5 mailing list
cvs-krb5@mit.edu
https://mailman.mit.edu/mailman/listinfo/cvs-krb5