From 20eb73e955301e32a73cd2742769d84a09ab9700 Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Fri, 10 Dec 2010 10:57:42 -0700 Subject: [PATCH] conf: plug memory leaks * src/conf/domain_conf.c (virDomainGraphicsDefParseXML) (virDomainDeviceVirtioSerialAddressParseXML) (virDomainDiskDefFree): Free various leaks. --- src/conf/domain_conf.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 5b0fd55720..d516fbe38d 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -524,6 +524,7 @@ void virDomainDiskDefFree(virDomainDiskDefPtr def) for (i = 0 ; i < def->nhosts ; i++) virDomainDiskHostDefFree(&def->hosts[i]); + VIR_FREE(def->hosts); VIR_FREE(def); } @@ -1420,6 +1421,7 @@ virDomainDeviceVirtioSerialAddressParseXML( cleanup: VIR_FREE(controller); VIR_FREE(bus); + VIR_FREE(port); return ret; } @@ -3491,6 +3493,8 @@ virDomainGraphicsDefParseXML(xmlNodePtr node, int flags) { if (!name || !mode) { virDomainReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("spice channel missing name/mode")); + VIR_FREE(name); + VIR_FREE(mode); goto error; } @@ -3498,14 +3502,20 @@ virDomainGraphicsDefParseXML(xmlNodePtr node, int flags) { virDomainReportError(VIR_ERR_INTERNAL_ERROR, _("unknown spice channel name %s"), name); + VIR_FREE(name); + VIR_FREE(mode); goto error; } if ((modeval = virDomainGraphicsSpiceChannelModeTypeFromString(mode)) < 0) { virDomainReportError(VIR_ERR_INTERNAL_ERROR, _("unknown spice channel mode %s"), mode); + VIR_FREE(name); + VIR_FREE(mode); goto error; } + VIR_FREE(name); + VIR_FREE(mode); def->data.spice.channels[nameval] = modeval; } -- GitLab