[libvirt] [PATCHv2] conf: return immediately on error in dhcp host element

Laine Stump laine at laine.org
Tue Mar 20 00:35:05 UTC 2012


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!




More information about the libvir-list mailing list