]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virsh: free the list from ListAll APIs even for 0 items
authorJán Tomko <jtomko@redhat.com>
Tue, 27 Aug 2013 11:27:50 +0000 (13:27 +0200)
committerJán Tomko <jtomko@redhat.com>
Wed, 28 Aug 2013 06:05:56 +0000 (08:05 +0200)
virsh secret-list leak when no secrets are defined:

==27== 8 bytes in 1 blocks are definitely lost in loss record 6 of 726
==27==    by 0x4E941DD: virAllocN (viralloc.c:183)
==27==    by 0x5037F1A: remoteConnectListAllSecrets (remote_driver.c:3076)
==27==    by 0x5004EC6: virConnectListAllSecrets (libvirt.c:16298)
==27==    by 0x15F813: vshSecretListCollect (virsh-secret.c:397)
==27==    by 0x15F0E1: cmdSecretList (virsh-secret.c:532)

And so do some other *-list commands.

https://bugzilla.redhat.com/show_bug.cgi?id=1001536

tools/virsh-interface.c
tools/virsh-network.c
tools/virsh-nodedev.c
tools/virsh-nwfilter.c
tools/virsh-secret.c

index 0f78551043498b272b0e67615f47c7aac3406f51..3720c8cf1d6d728a453b411d51745f80647d4cfb 100644 (file)
@@ -174,7 +174,7 @@ vshInterfaceListFree(vshInterfaceListPtr list)
 {
     size_t i;
 
-    if (list && list->nifaces) {
+    if (list && list->ifaces) {
         for (i = 0; i < list->nifaces; i++) {
             if (list->ifaces[i])
                 virInterfaceFree(list->ifaces[i]);
index 06bf483926136e73a684caf8afe420a574bdef56..8ddd5ca4d86be2ca59f2b2c3689f72846b90c2d3 100644 (file)
@@ -423,7 +423,7 @@ vshNetworkListFree(vshNetworkListPtr list)
 {
     size_t i;
 
-    if (list && list->nnets) {
+    if (list && list->nets) {
         for (i = 0; i < list->nnets; i++) {
             if (list->nets[i])
                 virNetworkFree(list->nets[i]);
index 55224051c7ffb55fa2502fe4173f6ac869d79332..b34a3b1752466c69227c688b02d3e2f240dd4fd0 100644 (file)
@@ -207,7 +207,7 @@ vshNodeDeviceListFree(vshNodeDeviceListPtr list)
 {
     size_t i;
 
-    if (list && list->ndevices) {
+    if (list && list->devices) {
         for (i = 0; i < list->ndevices; i++) {
             if (list->devices[i])
                 virNodeDeviceFree(list->devices[i]);
index fbf211aa112f7a0c0e45ee5e5c685787909392a1..e5fcb8f36066504b9475a2230ccd37e6bc9ad9cb 100644 (file)
@@ -242,7 +242,7 @@ vshNWFilterListFree(vshNWFilterListPtr list)
 {
     size_t i;
 
-    if (list && list->nfilters) {
+    if (list && list->filters) {
         for (i = 0; i < list->nfilters; i++) {
             if (list->filters[i])
                 virNWFilterFree(list->filters[i]);
index ac998400cf67ca18927724748cb78b21028a58a1..e849a79b19503b7f53be15e2d4d0600ce830f24a 100644 (file)
@@ -370,7 +370,7 @@ vshSecretListFree(vshSecretListPtr list)
 {
     size_t i;
 
-    if (list && list->nsecrets) {
+    if (list && list->secrets) {
         for (i = 0; i < list->nsecrets; i++) {
             if (list->secrets[i])
                 virSecretFree(list->secrets[i]);