From: Martin Kletzander Date: Tue, 11 Aug 2015 13:09:29 +0000 (+0200) Subject: conf: Don't try formating non-existing addresses X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=1f24c1494a85d663fa36047922a7974a292a46a7;p=libvirt.git conf: Don't try formating non-existing addresses 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 --- diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c index 374d723788..c1cbd76c68 100644 --- a/src/conf/network_conf.c +++ b/src/conf/network_conf.c @@ -1731,9 +1731,26 @@ 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 in " + " in network '%s'"), + addrStart, networkName); + goto cleanup; + } + if (addrEnd) { + virReportError(VIR_ERR_XML_ERROR, + _("Only end address '%s' specified in in " + " in network '%s'"), + addrEnd, networkName); + goto cleanup; + } + } /* ports for SNAT and MASQUERADE */ nNatPorts = virXPathNodeSet("./port", ctxt, &natPortNodes); diff --git a/tests/networkxml2xmlin/nat-network-forward-nat-no-address.xml b/tests/networkxml2xmlin/nat-network-forward-nat-no-address.xml new file mode 100644 index 0000000000..97a64526e9 --- /dev/null +++ b/tests/networkxml2xmlin/nat-network-forward-nat-no-address.xml @@ -0,0 +1,25 @@ + + default + 81ff0d90-c91e-6742-64da-4a736edb9a9b + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/networkxml2xmlout/nat-network-forward-nat-no-address.xml b/tests/networkxml2xmlout/nat-network-forward-nat-no-address.xml new file mode 100644 index 0000000000..f19e34deec --- /dev/null +++ b/tests/networkxml2xmlout/nat-network-forward-nat-no-address.xml @@ -0,0 +1,26 @@ + + default + 81ff0d90-c91e-6742-64da-4a736edb9a9b + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/networkxml2xmltest.c b/tests/networkxml2xmltest.c index 290336edbe..8d60aa8fc6 100644 --- a/tests/networkxml2xmltest.c +++ b/tests/networkxml2xmltest.c @@ -99,6 +99,7 @@ mymain(void) DO_TEST("nat-network-dns-forward-plain"); DO_TEST("nat-network-dns-forwarders"); DO_TEST("nat-network-forward-nat-address"); + DO_TEST("nat-network-forward-nat-no-address"); DO_TEST("8021Qbh-net"); DO_TEST("direct-net"); DO_TEST("host-bridge-net");