From: Volker Lendecke Date: Wed, 29 Oct 2025 12:41:30 +0000 (+0100) Subject: lib: Fix bitmap_talloc()'s parameter to unsigned X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=82350f36d6b2e0bb230c1e9623990d3d3e6bbddd;p=thirdparty%2Fsamba.git lib: Fix bitmap_talloc()'s parameter to unsigned It does not make sense to allocate a negative number of bits Signed-off-by: Volker Lendecke Reviewed-by: Anoop C S --- diff --git a/lib/util/bitmap.c b/lib/util/bitmap.c index 12cdfe4d16a..82cf55e459a 100644 --- a/lib/util/bitmap.c +++ b/lib/util/bitmap.c @@ -34,10 +34,14 @@ struct bitmap { /**************************************************************************** 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)); diff --git a/lib/util/bitmap.h b/lib/util/bitmap.h index 6d75929fb5a..be6d028c186 100644 --- a/lib/util/bitmap.h +++ b/lib/util/bitmap.h @@ -21,7 +21,7 @@ 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);