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(a)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 :-)