[libvirt] [PATCH] conf: Don't try formating non-existing addresses

Laine Stump laine at laine.org
Tue Aug 11 13:49:59 UTC 2015


On 08/11/2015 09:21 AM, Martin Kletzander wrote:
> On Tue, Aug 11, 2015 at 03:16:16PM +0200, Martin Kletzander wrote:
>> Commit a6f9af8292b6 added checking for address colisions between
>> starting and ending addresses of forwarding addresses, but forgot that
>> there might be no addresses set at all.
>>
>> Signed-off-by: Martin Kletzander <mkletzan at redhat.com>
>> ---
>> src/conf/network_conf.c                            | 22
>> +++++++++++++++++++---
>> ....xml => nat-network-forward-nat-no-address.xml} |  1 -
>> ....xml => nat-network-forward-nat-no-address.xml} |  1 -
>> tests/networkxml2xmltest.c                         |  1 +
>> 4 files changed, 20 insertions(+), 5 deletions(-)
>> copy tests/networkxml2xmlin/{nat-network-forward-nat-address.xml =>
>> nat-network-forward-nat-no-address.xml} (93%)
>> copy tests/networkxml2xmlout/{nat-network-forward-nat-address.xml =>
>> nat-network-forward-nat-no-address.xml} (93%)
>>
>> diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c
>> index 374d723788e1..f9d894b12046 100644
>> --- a/src/conf/network_conf.c
>> +++ b/src/conf/network_conf.c
>> @@ -1731,9 +1731,25 @@ virNetworkForwardNatDefParseXML(const char
>> *networkName,
>>         goto cleanup;
>>     }
>>
>> -    /* verify that start <= end */
>> -    if (virSocketAddrGetRange(&def->addr.start, &def->addr.end,
>> NULL, 0) < 0)
>> -        goto cleanup;
>> +    if (addrStart && addrEnd) {
>> +        /* verify that start <= end */
>> +        if (virSocketAddrGetRange(&def->addr.start, &def->addr.end,
>> NULL, 0) < 0)
>> +            goto cleanup;
>> +    } else {
>> +        if (addrStart) {
>> +            virReportError(VIR_ERR_XML_ERROR,
>> +                           _("Only start address '%s' specified in
>> <nat> in "
>> +                             "<forward> in network '%s'"),
>> +                           addrStart, networkName);
>> +            goto cleanup;
>> +        }
>> +        if (addrEnd) {
>> +            virReportError(VIR_ERR_XML_ERROR,
>> +                           _("Only end address '%s' specified in
>> <nat> in "
>> +                             "<forward> in network '%s'"),
>> +                           addrEnd, networkName);
>
> I see the missing 'goto cleanup;' now, consider this squashed in as it
> already is in my tree:
>
> diff --git c/src/conf/network_conf.c w/src/conf/network_conf.c
> index f9d894b12046..c1cbd76c6807 100644
> --- c/src/conf/network_conf.c
> +++ w/src/conf/network_conf.c
> @@ -1748,6 +1748,7 @@ virNetworkForwardNatDefParseXML(const char
> *networkName,
>                            _("Only end address '%s' specified in <nat>
> in "
>                              "<forward> in network '%s'"),
>                            addrEnd, networkName);
> +            goto cleanup;
>         }
>     }
>

ACK to the patch with that squashed in. Thanks for cleaning up after me :-)




More information about the libvir-list mailing list