From d90babe96151eac498fd2aa6af8a9f4916fa6854 Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Wed, 24 Nov 2010 13:29:38 -0700 Subject: [PATCH] network: plug memory leak * src/conf/network_conf.c (virNetworkDHCPRangeDefParseXML): Free xml strings when no longer referenced. --- src/conf/network_conf.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c index 9868250108..b469269e10 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; -- 2.47.2