From: Ondrej Zajicek (work) Date: Thu, 18 Jul 2019 00:05:36 +0000 (+0200) Subject: Lib: Fix print of 64-bit router id X-Git-Tag: v1.6.7~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9d23aa7a80d397f882cf60ff9b04f330b81dc1f0;p=thirdparty%2Fbird.git Lib: Fix print of 64-bit router id Mismatched types to printf(). The old code coincidentally worked on amd64 due to its calling conventions. Thanks to Maximilian Eschenbacher for the bugreport. --- diff --git a/lib/printf.c b/lib/printf.c index 48b86a5fe..be6a120ea 100644 --- a/lib/printf.c +++ b/lib/printf.c @@ -314,14 +314,14 @@ int bvsnprintf(char *buf, int size, const char *fmt, va_list args) if(qualifier == 'l') { X = va_arg(args, u64); bsprintf(ipbuf, "%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x", - ((X >> 56) & 0xff), - ((X >> 48) & 0xff), - ((X >> 40) & 0xff), - ((X >> 32) & 0xff), - ((X >> 24) & 0xff), - ((X >> 16) & 0xff), - ((X >> 8) & 0xff), - (X & 0xff)); + (uint) ((X >> 56) & 0xff), + (uint) ((X >> 48) & 0xff), + (uint) ((X >> 40) & 0xff), + (uint) ((X >> 32) & 0xff), + (uint) ((X >> 24) & 0xff), + (uint) ((X >> 16) & 0xff), + (uint) ((X >> 8) & 0xff), + (uint) (X & 0xff)); } else {