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:
parent
bcf07c3f24
commit
7086ea920d
|
@ -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)) {
|
||||||
|
|
Loading…
Reference in New Issue