From 526316e97b0eb6e60789c2ce46a9183542c04682 Mon Sep 17 00:00:00 2001 From: Derrick Brashear Date: Tue, 1 Jul 2003 23:55:12 +0000 Subject: [PATCH] snprintf-varargs-fun-20030701 this probably needs a better fix. however, one some platforms, we see: ./snprintf.c: In function `afs_vsnprintf': ./snprintf.c:227: `short int' is promoted to `int' when passed through `...' ./snprintf.c:227: (so you should pass `int' not `short int' to `va_arg') and it won't compile. are there platforms where short is correct? --- src/util/snprintf.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/util/snprintf.c b/src/util/snprintf.c index 09e25f968..eedc6b7f6 100644 --- a/src/util/snprintf.c +++ b/src/util/snprintf.c @@ -224,7 +224,7 @@ int afs_vsnprintf(char *p, size_t avail, const char *fmt, va_list ap) case 'd': /* signed decimal integer */ if (lflag > 1) SVAL = va_arg(ap, afs_intmax_t); else if (lflag) SVAL = va_arg(ap, long); - else if (hflag) SVAL = va_arg(ap, short); + else if (hflag) SVAL = va_arg(ap, int); else SVAL = va_arg(ap, int); UVAL = (SVAL < 0) ? -SVAL : SVAL; @@ -249,7 +249,7 @@ int afs_vsnprintf(char *p, size_t avail, const char *fmt, va_list ap) case 'o': /* unsigned octal integer */ if (lflag > 1) UVAL = va_arg(ap, afs_uintmax_t); else if (lflag) UVAL = va_arg(ap, unsigned long); - else if (hflag) UVAL = va_arg(ap, unsigned short); + else if (hflag) UVAL = va_arg(ap, unsigned int); else UVAL = va_arg(ap, unsigned int); xbuf[0] = '0'; @@ -268,7 +268,7 @@ int afs_vsnprintf(char *p, size_t avail, const char *fmt, va_list ap) case 'u': /* unsigned decimal integer */ if (lflag > 1) UVAL = va_arg(ap, afs_uintmax_t); else if (lflag) UVAL = va_arg(ap, unsigned long); - else if (hflag) UVAL = va_arg(ap, unsigned short); + else if (hflag) UVAL = va_arg(ap, unsigned int); else UVAL = va_arg(ap, unsigned int); if (!haveprec) { @@ -286,7 +286,7 @@ int afs_vsnprintf(char *p, size_t avail, const char *fmt, va_list ap) case 'X': /* unsigned hexadecimal integer */ if (lflag > 1) UVAL = va_arg(ap, afs_uintmax_t); else if (lflag) UVAL = va_arg(ap, unsigned long); - else if (hflag) UVAL = va_arg(ap, unsigned short); + else if (hflag) UVAL = va_arg(ap, unsigned int); else UVAL = va_arg(ap, unsigned int); xbuf[0] = '0'; -- 2.39.5