On 03/19/2012 03:49 PM, Eric Blake wrote: > On 03/19/2012 12:46 PM, Laine Stump wrote: >> If an error was encountered parsing a dhcp host entry mac address or >> name, parsing would continue and log a less descriptive error that >> might make it more difficult to notice the true nature of the problem. >> >> This patch returns immediately on logging the first error. >> --- >> src/conf/network_conf.c | 3 +++ >> 1 files changed, 3 insertions(+), 0 deletions(-) >> >> diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c >> index 0333141..4341f11 100644 >> --- a/src/conf/network_conf.c >> +++ b/src/conf/network_conf.c >> @@ -430,13 +430,16 @@ virNetworkDHCPRangeDefParseXML(const char *networkName, >> _("Cannot parse MAC address '%s' in network '%s'"), >> mac, networkName); >> VIR_FREE(mac); >> + return -1; >> } >> name = virXMLPropString(cur, "name"); >> if ((name != NULL) && (!c_isalpha(name[0]))) { >> virNetworkReportError(VIR_ERR_INTERNAL_ERROR, >> _("Cannot use name address '%s' in network '%s'"), >> name, networkName); >> + VIR_FREE(mac); >> VIR_FREE(name); >> + return -1; > ACK. I was debating if it would have been any cleaner to have a > cleanup: label, but then you start having to do major refactoring to > take advantage of it, at which point this patch would no longer be quite > so small. > Yeah, I go through the same thought process every time I see cleanup code like this. It's so much more difficult to introduce leaks when there is a single exit from the function and everything is always cleaned up. Pushed. Thanks! -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list