]> xenbits.xensource.com Git - libvirt.git/commitdiff
Resolve memory leak found by valgrind
authorJohn Ferlan <jferlan@redhat.com>
Fri, 31 May 2013 13:07:28 +0000 (09:07 -0400)
committerJohn Ferlan <jferlan@redhat.com>
Fri, 31 May 2013 14:38:15 +0000 (10:38 -0400)
Commit '6afdfc8e' adjusted the exit and error paths to go through the error
and cleanup labels, but neglected to remove the return ret prior to cleanup.
Also noted the 'type' xml string fetch was never checked for NULL which
could lead to some interesting results.

src/conf/storage_conf.c

index f0ea41dfda8c37a9ec68ca1d07b7c1dcb4469288..cc3d3d90e74112c9f04eabfefbe39756bdc7caa5 100644 (file)
@@ -834,6 +834,12 @@ virStoragePoolDefParseXML(xmlXPathContextPtr ctxt)
     }
 
     type = virXPathString("string(./@type)", ctxt);
+    if (type == NULL) {
+        virReportError(VIR_ERR_XML_ERROR, "%s",
+                       _("storage pool missing type attribute"));
+        goto error;
+    }
+
     if ((ret->type = virStoragePoolTypeFromString(type)) < 0) {
         virReportError(VIR_ERR_XML_ERROR,
                        _("unknown storage pool type %s"), type);
@@ -956,8 +962,6 @@ virStoragePoolDefParseXML(xmlXPathContextPtr ctxt)
             goto error;
     }
 
-    return ret;
-
 cleanup:
     VIR_FREE(uuid);
     VIR_FREE(type);