aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Blake <eblake@redhat.com>2010-11-24 13:29:38 -0700
committerEric Blake <eblake@redhat.com>2010-11-24 15:23:43 -0700
commitd90babe96151eac498fd2aa6af8a9f4916fa6854 (patch)
tree174e0c980d5f9aac0b1bff9a40ee7f0490e0d6ef
parentmaint: prohibit most uses of xmlGetProp (diff)
downloadlibvirt-d90babe96151eac498fd2aa6af8a9f4916fa6854.tar.gz
libvirt-d90babe96151eac498fd2aa6af8a9f4916fa6854.tar.bz2
libvirt-d90babe96151eac498fd2aa6af8a9f4916fa6854.zip
network: plug memory leak
* src/conf/network_conf.c (virNetworkDHCPRangeDefParseXML): Free xml strings when no longer referenced.
-rw-r--r--src/conf/network_conf.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c
index 986825010..b469269e1 100644
--- a/src/conf/network_conf.c
+++ b/src/conf/network_conf.c
@@ -252,10 +252,10 @@ virNetworkDHCPRangeDefParseXML(virNetworkDefPtr def,
VIR_FREE(end);
return -1;
}
+ VIR_FREE(start);
+ VIR_FREE(end);
if (VIR_REALLOC_N(def->ranges, def->nranges + 1) < 0) {
- VIR_FREE(start);
- VIR_FREE(end);
virReportOOMError();
return -1;
}
@@ -300,8 +300,8 @@ virNetworkDHCPRangeDefParseXML(virNetworkDefPtr def,
cur = cur->next;
continue;
}
+ VIR_FREE(ip);
if (VIR_REALLOC_N(def->hosts, def->nhosts + 1) < 0) {
- VIR_FREE(ip);
VIR_FREE(mac);
VIR_FREE(name);
virReportOOMError();
@@ -326,11 +326,15 @@ virNetworkDHCPRangeDefParseXML(virNetworkDefPtr def,
server = virXMLPropString(cur, "server");
if (server &&
- virSocketParseAddr(server, &inaddr, AF_UNSPEC) < 0)
+ virSocketParseAddr(server, &inaddr, AF_UNSPEC) < 0) {
+ VIR_FREE(file);
+ VIR_FREE(server);
return -1;
+ }
def->bootfile = file;
def->bootserver = inaddr;
+ VIR_FREE(server);
}
cur = cur->next;