summaryrefslogtreecommitdiff
path: root/libexec
diff options
context:
space:
mode:
authormatt <matt@NetBSD.org>2000-07-03 03:32:57 +0000
committermatt <matt@NetBSD.org>2000-07-03 03:32:57 +0000
commitc72bbb2c51ddfb6f10d1fa8d14cf1241d1e578ab (patch)
treec7d14c64100f81278b63efd0a4d02d86648cca9f /libexec
parent86d15d820b68d3505cab7fd13c8ee2f2d79c6c74 (diff)
Treat short and byte print formats as and cast to the right size.
Diffstat (limited to 'libexec')
-rw-r--r--libexec/ld.elf_so/xprintf.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/libexec/ld.elf_so/xprintf.c b/libexec/ld.elf_so/xprintf.c
index 86d7592871e..3f51382d24c 100644
--- a/libexec/ld.elf_so/xprintf.c
+++ b/libexec/ld.elf_so/xprintf.c
@@ -1,4 +1,4 @@
-/* $NetBSD: xprintf.c,v 1.6 2000/04/02 23:04:32 soren Exp $ */
+/* $NetBSD: xprintf.c,v 1.7 2000/07/03 03:32:57 matt Exp $ */
/*
* Copyright 1996 Matt Thomas <matt@3am-software.com>
@@ -30,6 +30,7 @@
#include <sys/cdefs.h>
#include "rtldenv.h"
#include <string.h>
+#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#ifdef __STDC__
@@ -94,12 +95,12 @@ xvsnprintf(buf, buflen, fmt, ap)
unsigned long long uval;
char digits[sizeof(int) * 3], *dp = digits;
#define SARG() \
-(size & SZ_SHORT ? va_arg(ap, short) : \
+(size & SZ_SHORT ? (short) va_arg(ap, int) : \
size & SZ_LONG ? va_arg(ap, long) : \
size & SZ_QUAD ? va_arg(ap, long long) : \
va_arg(ap, int))
#define UARG() \
-(size & SZ_SHORT ? va_arg(ap, unsigned short) : \
+(size & SZ_SHORT ? (unsigned short) va_arg(ap, unsigned int) : \
size & SZ_LONG ? va_arg(ap, unsigned long) : \
size & SZ_QUAD ? va_arg(ap, unsigned long long) : \
va_arg(ap, unsigned int))