It does not make sense to allocate a negative number of bits
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
/****************************************************************************
talloc a bitmap
****************************************************************************/
-struct bitmap *bitmap_talloc(TALLOC_CTX *mem_ctx, int n)
+struct bitmap *bitmap_talloc(TALLOC_CTX *mem_ctx, unsigned n)
{
struct bitmap *bm;
+ if (n > (UINT_MAX - 32)) {
+ return NULL;
+ }
+
bm = (struct bitmap *)talloc_zero_size(
mem_ctx,
offsetof(struct bitmap, b) + sizeof(uint32_t)*((n+31)/32));
struct bitmap;
-struct bitmap *bitmap_talloc(TALLOC_CTX *mem_ctx, int n);
+struct bitmap *bitmap_talloc(TALLOC_CTX *mem_ctx, unsigned n);
int bitmap_copy(struct bitmap * const dst, const struct bitmap * const src);
bool bitmap_set(struct bitmap *bm, unsigned i);
bool bitmap_clear(struct bitmap *bm, unsigned i);