]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Fix control flow issue CID 314969 in zoneconf.c
authorMatthijs Mekking <matthijs@isc.org>
Mon, 18 Jan 2021 08:04:19 +0000 (09:04 +0100)
committerMatthijs Mekking <matthijs@isc.org>
Mon, 18 Jan 2021 10:48:09 +0000 (11:48 +0100)
Coverity Scan identified the following issue in bin/named/zoneconf.c:

    *** CID 314969:  Control flow issues  (DEADCODE)
    /bin/named/zoneconf.c: 2212 in named_zone_inlinesigning()

    if (!inline_signing && !zone_is_dynamic &&
        cfg_map_get(zoptions, "dnssec-policy", &signing) == ISC_R_SUCCESS &&
        signing != NULL)
    {
        if (strcmp(cfg_obj_asstring(signing), "none") != 0) {
            inline_signing = true;
    >>>     CID 314969:  Control flow issues  (DEADCODE)
    >>>     Execution cannot reach the expression ""no"" inside this statement: "dns_zone_log(zone, 1, "inli...".
            dns_zone_log(
                zone, ISC_LOG_DEBUG(1), "inline-signing: %s",
                inline_signing
                ? "implicitly through dnssec-policy"
                : "no");
        } else {
                ...
        }
    }

This is because we first set 'inline_signing = true' and then check
its value in 'dns_zone_log'.

bin/named/zoneconf.c

index 2765b77e6903bb36b2253d4b8de808f7488c3cf4..74a5c9c8cfe914213e95a99f30447ed3cdc9e818 100644 (file)
@@ -2209,11 +2209,9 @@ named_zone_inlinesigning(dns_zone_t *zone, const cfg_obj_t *zconfig,
        {
                if (strcmp(cfg_obj_asstring(signing), "none") != 0) {
                        inline_signing = true;
-                       dns_zone_log(
-                               zone, ISC_LOG_DEBUG(1), "inline-signing: %s",
-                               inline_signing
-                                       ? "implicitly through dnssec-policy"
-                                       : "no");
+                       dns_zone_log(zone, ISC_LOG_DEBUG(1),
+                                    "inline-signing: "
+                                    "implicitly through dnssec-policy");
                } else {
                        inline_signing = dns_zone_secure_to_insecure(zone,
                                                                     true);