mirror of https://gitee.com/openkylin/libvirt.git
network: eliminate potential memory leak on parse failure
While the first encountered dns host record is being parsed, it's possible for virNetworkDef::hosts to point to memory that has been allocated, but virNetworkDef::nhosts to still be 0. If there is a failure during that time, virNetworkDef::hosts will be leaked. Although this isn't currently the case for virNetworkDef::txtrecords, it could become that way through future re-factoring, and it hurts nothing to restructure the freeing of txtrecord data to match that of hosts data.
This commit is contained in:
parent
762101c7af
commit
4a6ffae3b6
|
@ -127,16 +127,16 @@ static void virNetworkDNSDefFree(virNetworkDNSDefPtr def)
|
|||
VIR_FREE(def->txtrecords[def->ntxtrecords].name);
|
||||
VIR_FREE(def->txtrecords[def->ntxtrecords].value);
|
||||
}
|
||||
VIR_FREE(def->txtrecords);
|
||||
}
|
||||
VIR_FREE(def->txtrecords);
|
||||
if (def->nhosts) {
|
||||
while (def->nhosts--) {
|
||||
while (def->hosts[def->nhosts].nnames--)
|
||||
VIR_FREE(def->hosts[def->nhosts].names[def->hosts[def->nhosts].nnames]);
|
||||
VIR_FREE(def->hosts[def->nhosts].names);
|
||||
}
|
||||
VIR_FREE(def->hosts);
|
||||
}
|
||||
VIR_FREE(def->hosts);
|
||||
VIR_FREE(def);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue