From f6c29f62283b05ca12bc032870b5e69bd50d82ba Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Wed, 15 Feb 2023 18:17:33 +0100 Subject: Fix accessing bit 31 Shifting (signed) 1 to left 31 positions is undefined behavior. So make this an unsigned so it becomes defined behavior. --- defpager/backing.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'defpager/backing.c') diff --git a/defpager/backing.c b/defpager/backing.c index aa9810c0..56fe6551 100644 --- a/defpager/backing.c +++ b/defpager/backing.c @@ -96,7 +96,7 @@ allocate_backing_page () bit--; /* Mark it */ - *bmap_rotor |= 1 << bit; + *bmap_rotor |= 1U << bit; /* Return the correct offset */ pfn = (bmap_rotor - bmap) * 8 + bit; @@ -123,7 +123,7 @@ return_backing_pages (off_t *map, int maplen) b = bmap + pfn & ~7; bit = pfn & 7; - assert_backtrace ((*b & (1 << bit)) == 0); + assert_backtrace ((*b & (1U << bit)) == 0); *b |= 1 << bit; } pthread_mutex_unlock (&bmap_lock); -- cgit v1.2.3