From 34f2487163790cb21b54f4eda0d9c9a71503f412 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Fri, 2 Jan 2009 21:33:33 +0100 Subject: [PATCH] msvcrt: Fix formatting of pointers in printf. --- dlls/msvcrt/wcs.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/dlls/msvcrt/wcs.c b/dlls/msvcrt/wcs.c index 65b8c2e8793..927a7d9394b 100644 --- a/dlls/msvcrt/wcs.c +++ b/dlls/msvcrt/wcs.c @@ -678,13 +678,14 @@ static int pf_vsnprintf( pf_output *out, const WCHAR *format, va_list valist ) /* output a pointer */ else if( flags.Format == 'p' ) { - char pointer[11]; + char pointer[32]; + void *ptr = va_arg( valist, void * ); flags.PadZero = 0; if( flags.Alternate ) - sprintf(pointer, "0X%08lX", va_arg(valist, long)); + sprintf(pointer, "0X%0*lX", 2 * sizeof(ptr), (ULONG_PTR)ptr); else - sprintf(pointer, "%08lX", va_arg(valist, long)); + sprintf(pointer, "%0*lX", 2 * sizeof(ptr), (ULONG_PTR)ptr); r = pf_output_format_A( out, pointer, -1, &flags ); }