From 155f087b19681f043cd65283559a7a8dea08c85a Mon Sep 17 00:00:00 2001 From: Pali Rohár Date: Sat, 20 Jan 2024 12:30:08 +0100 Subject: libpci: physmem-posix: Fix OFF_MAX definition Expression ((1 << n) - 1) for n=31 has undefined behavior and gcc 11 already evaluates it to zero. Fix definition of OFF_MAX to prevent signed integer overflow. --- lib/physmem-posix.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/physmem-posix.c b/lib/physmem-posix.c index 664ec48..7cd7e99 100644 --- a/lib/physmem-posix.c +++ b/lib/physmem-posix.c @@ -26,7 +26,7 @@ #include #ifndef OFF_MAX -#define OFF_MAX (off_t)((1ULL << (sizeof(off_t) * CHAR_BIT - 1)) - 1) +#define OFF_MAX ((((off_t)1 << (sizeof(off_t) * CHAR_BIT - 2)) - 1) * 2 + 1) #endif struct physmem { -- cgit 1.2.3-korg