From 7086ea920d4181f1d4927e9f150a3976c7a8f3a7 Mon Sep 17 00:00:00 2001 From: Patrick Georgi Date: Mon, 29 Dec 2014 19:53:51 +0100 Subject: libpayload: fix printf handling of unsigned long long 1 << 63 is undefined for 32bit numbers. Change-Id: I22f0e2486b133ea18cfbb8dd79fd4aed91ac0a4c Signed-off-by: Patrick Georgi Found-by: Coverity Scan Reviewed-on: http://review.coreboot.org/7972 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth Reviewed-by: Paul Menzel --- payloads/libpayload/libc/printf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'payloads/libpayload') diff --git a/payloads/libpayload/libc/printf.c b/payloads/libpayload/libc/printf.c index 8f76ccf286..cb623aa51a 100644 --- a/payloads/libpayload/libc/printf.c +++ b/payloads/libpayload/libc/printf.c @@ -647,7 +647,7 @@ static int printf_core(const char *fmt, struct printf_spec *ps, va_list ap) } if (flags & __PRINTF_FLAG_SIGNED) { - if (number & (0x1 << (size * 8 - 1))) { + if (number & (0x1ULL << (size * 8 - 1))) { flags |= __PRINTF_FLAG_NEGATIVE; if (size == sizeof(uint64_t)) { -- cgit v1.2.3