]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virsh: plug memory leak on cmdDomIfGetLink() sucessful path
authorAlex Jia <ajia@redhat.com>
Thu, 8 Dec 2011 06:09:57 +0000 (14:09 +0800)
committerEric Blake <eblake@redhat.com>
Thu, 8 Dec 2011 23:48:00 +0000 (16:48 -0700)
Detected by valgrind. Leak introduced in commit dc675f3:

* tools/virsh.c: fix memory leak on cmdDomIfGetLink.

* how to reproduce?
  % valgrind -v --leak-check=full virsh domif-getlink <domain name> 0

* actual valgrind result:

==13102== 18 bytes in 1 blocks are definitely lost in loss record 9 of 47
==13102==    at 0x4A05FDE: malloc (vg_replace_malloc.c:236)
==13102==    by 0x322A6A67DD: xmlStrndup (in /usr/lib64/libxml2.so.2.7.6)
==13102==    by 0x414892: cmdDomIfGetLink (virsh.c:1538)
==13102==    by 0x4136A2: vshCommandRun (virsh.c:16363)
==13102==    by 0x4253FB: main (virsh.c:17865)
==13102==
==13102== LEAK SUMMARY:
==13102==    definitely lost: 18 bytes in 1 blocks
==13102==    indirectly lost: 0 bytes in 0 blocks
==13102==      possibly lost: 0 bytes in 0 blocks
==13102==    still reachable: 127,888 bytes in 1,361 blocks
==13102==         suppressed: 0 bytes in 0 blocks

Signed-off-by: Alex Jia <ajia@redhat.com>
tools/virsh.c

index e6e4f8b87654240186511712c31bc07c366a9da6..4262d60ec743761b6c50221ab6034ba056379f43 100644 (file)
@@ -1541,6 +1541,7 @@ cmdDomIfGetLink (vshControl *ctl, const vshCmd *cmd)
                     VIR_FREE(mac);
                     goto hit;
                 }
+                VIR_FREE(mac);
             }
             cur = cur->next;
         }
@@ -6400,7 +6401,7 @@ cmdBlkdeviotune(vshControl *ctl, const vshCmd *cmd)
             }
         }
 
-        ret =  true;
+        ret = true;
         goto cleanup;
     } else {
         /* Set the block I/O throttle, match by opt since parameters can be 0 */