From 93ab0cef2a0f68788f77d8fce7e4f795e9921a9b Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Thu, 22 Nov 2018 15:06:42 +0100 Subject: [PATCH] lib:util: Fix undefined behavior in bitmap.c lib/util/bitmap.c:77: runtime error: left shift of 1 by 31 places cannot be represented in type 'int' Signed-off-by: Andreas Schneider Reviewed-by: Gary Lockyer --- lib/util/bitmap.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/util/bitmap.c b/lib/util/bitmap.c index 63963356f98..12cdfe4d16a 100644 --- a/lib/util/bitmap.c +++ b/lib/util/bitmap.c @@ -74,7 +74,7 @@ bool bitmap_set(struct bitmap *bm, unsigned i) i, bm->n)); return false; } - bm->b[i/32] |= (1<<(i%32)); + bm->b[i/32] |= (1U<<(i%32)); return true; } @@ -88,7 +88,7 @@ bool bitmap_clear(struct bitmap *bm, unsigned i) i, bm->n)); return false; } - bm->b[i/32] &= ~(1<<(i%32)); + bm->b[i/32] &= ~(1U<<(i%32)); return true; } @@ -98,7 +98,7 @@ query a bit in a bitmap bool bitmap_query(struct bitmap *bm, unsigned i) { if (i >= bm->n) return false; - if (bm->b[i/32] & (1<<(i%32))) { + if (bm->b[i/32] & (1U<<(i%32))) { return true; } return false;