]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Allow "order none" in "rrset-order" rules
authorMichał Kępień <michal@isc.org>
Fri, 2 Oct 2020 06:41:43 +0000 (08:41 +0200)
committerMichał Kępień <michal@isc.org>
Fri, 2 Oct 2020 06:41:43 +0000 (08:41 +0200)
named-checkconf treats the following configuration as valid:

    options {
        rrset-order {
            order none;
        };
    };

Yet, the above configuration causes named to crash on startup with:

    order.c:74: REQUIRE(mode == 0x00000800 || mode == 0x00000400 || mode == 0x00800000) failed, back trace

Add DNS_RDATASETATTR_NONE to the list of RRset ordering modes accepted
by dns_order_add() to allow "order none" to be used in "rrset-order"
rules.  This both prevents the aforementioned crashes and addresses the
discrepancy between named-checkconf and named.

lib/dns/order.c

index 463df94d01c6ae917d50f8e4c772bd484cf0514a..fbd1c9f6dad3ecec77eb71acf9e16714c999f406 100644 (file)
@@ -73,7 +73,8 @@ dns_order_add(dns_order_t *order, const dns_name_t *name,
        REQUIRE(DNS_ORDER_VALID(order));
        REQUIRE(mode == DNS_RDATASETATTR_RANDOMIZE ||
                mode == DNS_RDATASETATTR_FIXEDORDER ||
-               mode == DNS_RDATASETATTR_CYCLIC);
+               mode == DNS_RDATASETATTR_CYCLIC ||
+               mode == DNS_RDATASETATTR_NONE);
 
        ent = isc_mem_get(order->mctx, sizeof(*ent));