From 2f3e7f1e36334a5e32b44df91247a37279aecee4 Mon Sep 17 00:00:00 2001 From: John Ferlan Date: Fri, 31 May 2013 09:07:28 -0400 Subject: [PATCH] Resolve memory leak found by valgrind 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 | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c index f0ea41dfda..cc3d3d90e7 100644 --- a/src/conf/storage_conf.c +++ b/src/conf/storage_conf.c @@ -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); -- GitLab