]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
remoteNodeGetFreePages: Don't alloc args.pages.pages_val
authorMichal Privoznik <mprivozn@redhat.com>
Thu, 25 Sep 2014 09:18:50 +0000 (11:18 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Fri, 26 Sep 2014 08:02:21 +0000 (10:02 +0200)
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@redhat.com>
src/remote/remote_driver.c

index dc2d2fb64cb5cdd1b92ccacd96b5879be2a362d3..6c49e49c179705f348cbc2b7fff9c27a1459bb20 100644 (file)
@@ -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;