]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virBitmapNewCopy: Reimplement bitmap copying to prevent failure
authorPeter Krempa <pkrempa@redhat.com>
Fri, 2 Oct 2020 08:22:18 +0000 (10:22 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Mon, 5 Oct 2020 13:50:45 +0000 (15:50 +0200)
virBitmapCopy has a failure condition, which is impossible to meet when
creating a new copy. Copy the contents directly to make it obvious that
virBitmapNewCopy can't fail.

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

index 5f6136367aaf7e82abb865eb607e8bf6bd22ca1a..ee540e15a95d977b27ecdaeedc0bb6c4a6c0df8a 100644 (file)
@@ -655,20 +655,14 @@ virBitmapParseUnlimited(const char *str)
  * virBitmapNewCopy:
  * @src: the source bitmap.
  *
- * Makes a copy of bitmap @src.
- *
- * returns the copied bitmap on success, or NULL otherwise. Caller
- * should call virBitmapFree to free the returned bitmap.
+ * Returns a copy of bitmap @src.
  */
 virBitmapPtr
 virBitmapNewCopy(virBitmapPtr src)
 {
     virBitmapPtr dst = virBitmapNew(src->nbits);
 
-    if (virBitmapCopy(dst, src) != 0) {
-        virBitmapFree(dst);
-        return NULL;
-    }
+    memcpy(dst->map, src->map, src->map_len * sizeof(src->map[0]));
 
     return dst;
 }