]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
lib/layer/validate.c: replace asserts
authorTomas Krizek <tomas.krizek@nic.cz>
Wed, 24 Mar 2021 16:44:46 +0000 (17:44 +0100)
committerTomas Krizek <tomas.krizek@nic.cz>
Tue, 25 May 2021 12:39:42 +0000 (14:39 +0200)
lib/layer/validate.c

index a99ee5884863b0716d8ad159c900dc8a73b067fe..f081d86993badeacc840e82f15d3af74c124defd 100644 (file)
@@ -2,7 +2,6 @@
  *  SPDX-License-Identifier: GPL-3.0-or-later
  */
 
-#include <assert.h>
 #include <errno.h>
 #include <sys/time.h>
 #include <stdio.h>
@@ -87,7 +86,8 @@ static void log_bogus_rrsig(kr_rrset_validation_ctx_t *vctx, const struct kr_que
 /** Check that given CNAME could be generated by given DNAME (no DNSSEC validation). */
 static bool cname_matches_dname(const knot_rrset_t *rr_cn, const knot_rrset_t *rr_dn)
 {
-       assert(rr_cn->type == KNOT_RRTYPE_CNAME && rr_dn->type == KNOT_RRTYPE_DNAME);
+       if (!kr_assume(rr_cn->type == KNOT_RRTYPE_CNAME && rr_dn->type == KNOT_RRTYPE_DNAME))
+               return false;
        /* When DNAME substitution happens, let's consider the "prefix"
         * that is carried over and the "suffix" that is replaced.
         * (Here we consider the label order used in wire and presentation.) */
@@ -423,7 +423,8 @@ static int update_parent_keys(struct kr_request *req, uint16_t answer_type)
 {
        struct kr_query *qry = req->current_query;
        struct kr_query *parent = qry->parent;
-       assert(parent);
+       if (!kr_assume(parent))
+               return KR_STATE_FAIL;
        switch(answer_type) {
        case KNOT_RRTYPE_DNSKEY:
                VERBOSE_MSG(qry, "<= parent: updating DNSKEY\n");
@@ -747,7 +748,8 @@ static int unsigned_forward(kr_layer_t *ctx, knot_pkt_t *pkt)
                qry->flags.DNSSEC_WANT = false;
                qry->flags.DNSSEC_INSECURE = true;
                if (qry->forward_flags.CNAME) {
-                       assert(qry->cname_parent);
+                       if (!kr_assume(qry->cname_parent))
+                               return KR_STATE_FAIL;
                        qry->cname_parent->flags.DNSSEC_WANT = false;
                        qry->cname_parent->flags.DNSSEC_INSECURE = true;
                } else if (pkt_rcode == KNOT_RCODE_NOERROR && qry->parent != NULL) {
@@ -764,7 +766,8 @@ static int unsigned_forward(kr_layer_t *ctx, knot_pkt_t *pkt)
                        qry->flags.DNSSEC_WANT = false;
                        qry->flags.DNSSEC_INSECURE = true;
                        if (qry->forward_flags.CNAME) {
-                               assert(qry->cname_parent);
+                               if (!kr_assume(qry->cname_parent))
+                                       return KR_STATE_FAIL;
                                qry->cname_parent->flags.DNSSEC_WANT = false;
                                qry->cname_parent->flags.DNSSEC_INSECURE = true;
                        }