From: Olaf Hering Date: Wed, 9 Dec 2020 15:54:49 +0000 (+0100) Subject: tools: allocate bitmaps in units of unsigned long X-Git-Tag: archive/raspbian/4.16.0+51-g0941d6cb-1+rpi1~2^2~42^2~1298 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=8b90e311e0912b822621167621c515b41ea3d8e2;p=xen.git tools: allocate bitmaps in units of unsigned long Allocate enough memory so that the returned pointer can be safely accessed as an array of unsigned long. The actual bitmap size in units of bytes, as returned by bitmap_size, remains unchanged. Signed-off-by: Olaf Hering Acked-by: Wei Liu --- diff --git a/tools/libs/ctrl/xc_bitops.h b/tools/libs/ctrl/xc_bitops.h index 3d3a09772a..d6c5ea5138 100644 --- a/tools/libs/ctrl/xc_bitops.h +++ b/tools/libs/ctrl/xc_bitops.h @@ -21,7 +21,10 @@ static inline unsigned long bitmap_size(unsigned long nr_bits) static inline void *bitmap_alloc(unsigned long nr_bits) { - return calloc(1, bitmap_size(nr_bits)); + unsigned long longs; + + longs = (nr_bits + BITS_PER_LONG - 1) / BITS_PER_LONG; + return calloc(longs, sizeof(unsigned long)); } static inline void bitmap_set(void *addr, unsigned long nr_bits)