]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
util: virbitmap: Don't forbid 0 size bitmap
authorPeter Krempa <pkrempa@redhat.com>
Thu, 1 Oct 2020 14:45:59 +0000 (16:45 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Mon, 5 Oct 2020 10:57:46 +0000 (12:57 +0200)
We now have APIs which automatically expand the bitmap and also API
which allocates a 0 size bitmap. Remove the condition from virBitmapNew.

Effectively reverts ce49cfb48ad

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/util/virbitmap.c

index a99902377744d049412301a1ff90c405ba80ee33..ddcaddc87238cb42248fd142b5f7f45899a5adc4 100644 (file)
@@ -55,8 +55,8 @@ struct _virBitmap {
  *
  * Allocate a bitmap capable of containing @size bits.
  *
- * Returns a pointer to the allocated bitmap or NULL if either memory cannot be
- * allocated or size is 0. Does not report libvirt errors.
+ * Returns a pointer to the allocated bitmap or NULL if memory cannot be
+ * allocated. Does not report libvirt errors.
  */
 virBitmapPtr
 virBitmapNewQuiet(size_t size)
@@ -64,12 +64,16 @@ virBitmapNewQuiet(size_t size)
     virBitmapPtr bitmap;
     size_t sz;
 
-    if (SIZE_MAX - VIR_BITMAP_BITS_PER_UNIT < size || size == 0)
+    if (SIZE_MAX - VIR_BITMAP_BITS_PER_UNIT < size)
         return NULL;
 
     sz = VIR_DIV_UP(size, VIR_BITMAP_BITS_PER_UNIT);
 
     bitmap = g_new0(virBitmap, 1);
+
+    if (size == 0)
+        return bitmap;
+
     bitmap->map = g_new0(unsigned long, sz);
     bitmap->nbits = size;
     bitmap->map_len = sz;