libpayload: fix printf handling of unsigned long long

1 << 63 is undefined for 32bit numbers.

Change-Id: I22f0e2486b133ea18cfbb8dd79fd4aed91ac0a4c
Signed-off-by: Patrick Georgi <patrick@georgi-clan.de>
Found-by: Coverity Scan
Reviewed-on: http://review.coreboot.org/7972
Tested-by: build bot (Jenkins)
Reviewed-by: Martin Roth <gaumless@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
This commit is contained in:
Patrick Georgi 2014-12-29 19:53:51 +01:00 committed by Patrick Georgi
parent bcf07c3f24
commit 7086ea920d
1 changed files with 1 additions and 1 deletions

View File

@ -647,7 +647,7 @@ static int printf_core(const char *fmt, struct printf_spec *ps, va_list ap)
} }
if (flags & __PRINTF_FLAG_SIGNED) { if (flags & __PRINTF_FLAG_SIGNED) {
if (number & (0x1 << (size * 8 - 1))) { if (number & (0x1ULL << (size * 8 - 1))) {
flags |= __PRINTF_FLAG_NEGATIVE; flags |= __PRINTF_FLAG_NEGATIVE;
if (size == sizeof(uint64_t)) { if (size == sizeof(uint64_t)) {