From: David Herrmann Date: Fri, 17 Jul 2015 10:19:06 +0000 (+0200) Subject: bitmap: avoid 32bit integer overflow in shift X-Git-Tag: v223~85^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F611%2Fhead;p=thirdparty%2Fsystemd.git bitmap: avoid 32bit integer overflow in shift We really must use 64bit integers to calculate long-long shifts. Otherwise, we will never get higher masks than 2^31. --- diff --git a/src/basic/bitmap.c b/src/basic/bitmap.c index 83448ca93c6..c5039fd22f2 100644 --- a/src/basic/bitmap.c +++ b/src/basic/bitmap.c @@ -157,7 +157,7 @@ bool bitmap_iterate(Bitmap *b, Iterator *i, unsigned *n) { offset = BITMAP_NUM_TO_OFFSET(i->idx); rem = BITMAP_NUM_TO_REM(i->idx); - bitmask = 1 << rem; + bitmask = 1ULL << rem; for (; offset < b->n_bitmaps; offset ++) { if (b->bitmaps[offset]) {