]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Fix a memory leak in virsh
authorLaine Stump <laine@laine.org>
Fri, 4 Sep 2009 13:38:15 +0000 (15:38 +0200)
committerDaniel Veillard <veillard@redhat.com>
Fri, 4 Sep 2009 13:38:15 +0000 (15:38 +0200)
* src/virsh.c: cmdNodeDeviceDumpXML wasn't freeing
  virNodeDeviceGetXMLDesc() return string

src/virsh.c

index 15e0cef5103c600511dab188043c3b1401463b53..910d8600f9c8a3f4e6c8b5765539e3cd1223d3ec 100644 (file)
@@ -5521,6 +5521,7 @@ cmdNodeDeviceDumpXML (vshControl *ctl, const vshCmd *cmd)
 {
     const char *name;
     virNodeDevicePtr device;
+    char *xml;
 
     if (!vshConnectionUsability(ctl, ctl->conn, TRUE))
         return FALSE;
@@ -5531,7 +5532,14 @@ cmdNodeDeviceDumpXML (vshControl *ctl, const vshCmd *cmd)
         return FALSE;
     }
 
-    vshPrint(ctl, "%s\n", virNodeDeviceGetXMLDesc(device, 0));
+    xml = virNodeDeviceGetXMLDesc(device, 0);
+    if (!xml) {
+        virNodeDeviceFree(device);
+        return FALSE;
+    }
+
+    vshPrint(ctl, "%s\n", xml);
+    free(xml);
     virNodeDeviceFree(device);
     return TRUE;
 }