[libvirt] [PATCH] remoteNodeGetFreePages: Don't alloc args.pages.pages_val

Michal Privoznik mprivozn at redhat.com
Thu Sep 25 09:23:09 UTC 2014


There's no one to free() it anyway. Instead, we can just pass the
provided array pointer directly.

==20039== 48 bytes in 4 blocks are definitely lost in loss record 658 of 787
==20039==    at 0x4C2A700: calloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==20039==    by 0x4EA661F: virAllocN (viralloc.c:191)
==20039==    by 0x50386EF: remoteNodeGetFreePages (remote_driver.c:7625)
==20039==    by 0x5003504: virNodeGetFreePages (libvirt.c:21379)
==20039==    by 0x154625: cmdFreepages (virsh-host.c:374)
==20039==    by 0x12F718: vshCommandRun (virsh.c:1935)
==20039==    by 0x1339FB: main (virsh.c:3747)

Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
---
 src/remote/remote_driver.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c
index dc2d2fb..6c49e49 100644
--- a/src/remote/remote_driver.c
+++ b/src/remote/remote_driver.c
@@ -7622,9 +7622,7 @@ remoteNodeGetFreePages(virConnectPtr conn,
         goto done;
     }
 
-    if (VIR_ALLOC_N(args.pages.pages_val, npages) < 0)
-        goto done;
-    memcpy(args.pages.pages_val, pages, npages * sizeof(*pages));
+    args.pages.pages_val = (u_int *) pages;
     args.pages.pages_len = npages;
     args.startCell = startCell;
     args.cellCount = cellCount;
-- 
1.8.5.5




More information about the libvir-list mailing list