network: plug memory leak

* src/conf/network_conf.c (virNetworkDHCPRangeDefParseXML): Free
xml strings when no longer referenced.
This commit is contained in:
Eric Blake 2010-11-24 13:29:38 -07:00
parent 416c09bcc0
commit d90babe961

View File

@ -252,10 +252,10 @@ virNetworkDHCPRangeDefParseXML(virNetworkDefPtr def,
VIR_FREE(end); VIR_FREE(end);
return -1; return -1;
} }
VIR_FREE(start);
VIR_FREE(end);
if (VIR_REALLOC_N(def->ranges, def->nranges + 1) < 0) { if (VIR_REALLOC_N(def->ranges, def->nranges + 1) < 0) {
VIR_FREE(start);
VIR_FREE(end);
virReportOOMError(); virReportOOMError();
return -1; return -1;
} }
@ -300,8 +300,8 @@ virNetworkDHCPRangeDefParseXML(virNetworkDefPtr def,
cur = cur->next; cur = cur->next;
continue; continue;
} }
VIR_FREE(ip);
if (VIR_REALLOC_N(def->hosts, def->nhosts + 1) < 0) { if (VIR_REALLOC_N(def->hosts, def->nhosts + 1) < 0) {
VIR_FREE(ip);
VIR_FREE(mac); VIR_FREE(mac);
VIR_FREE(name); VIR_FREE(name);
virReportOOMError(); virReportOOMError();
@ -326,11 +326,15 @@ virNetworkDHCPRangeDefParseXML(virNetworkDefPtr def,
server = virXMLPropString(cur, "server"); server = virXMLPropString(cur, "server");
if (server && if (server &&
virSocketParseAddr(server, &inaddr, AF_UNSPEC) < 0) virSocketParseAddr(server, &inaddr, AF_UNSPEC) < 0) {
VIR_FREE(file);
VIR_FREE(server);
return -1; return -1;
}
def->bootfile = file; def->bootfile = file;
def->bootserver = inaddr; def->bootserver = inaddr;
VIR_FREE(server);
} }
cur = cur->next; cur = cur->next;