]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
The dns_message_create() cannot fail, change the return to void
authorOndřej Surý <ondrej@sury.org>
Fri, 25 Sep 2020 09:51:36 +0000 (11:51 +0200)
committerOndřej Surý <ondrej@sury.org>
Tue, 29 Sep 2020 06:22:08 +0000 (08:22 +0200)
The dns_message_create() function cannot soft fail (as all memory
allocations either succeed or cause abort), so we change the function to
return void and cleanup the calls.

23 files changed:
bin/dig/dighost.c
bin/nsupdate/nsupdate.c
bin/tests/system/pipelined/pipequeries.c
bin/tests/system/tkey/keycreate.c
bin/tests/system/tkey/keydelete.c
bin/tests/wire_test.c
bin/tools/mdig.c
cocci/dns_message_create.spatch [new file with mode: 0644]
fuzz/dns_message_parse.c
lib/dns/client.c
lib/dns/dnstap.c
lib/dns/include/dns/message.h
lib/dns/message.c
lib/dns/resolver.c
lib/dns/tests/tsig_test.c
lib/dns/xfrin.c
lib/dns/zone.c
lib/ns/client.c
lib/ns/tests/notify_test.c
lib/ns/tests/nstest.c
lib/ns/xfrout.c
lib/samples/nsprobe.c
lib/samples/sample-request.c

index b1ed60c58af862bbadc6c12e1f7bc4e08afbe2d1..1393ac7d88bb9eee19a6faeeac335bfbd40275c6 100644 (file)
@@ -2106,9 +2106,7 @@ setup_lookup(dig_lookup_t *lookup) {
 
        debug("setup_lookup(%p)", lookup);
 
-       result = dns_message_create(mctx, DNS_MESSAGE_INTENTRENDER,
-                                   &lookup->sendmsg);
-       check_result(result, "dns_message_create");
+       dns_message_create(mctx, DNS_MESSAGE_INTENTRENDER, &lookup->sendmsg);
 
        if (lookup->new_search) {
                debug("resetting lookup counter.");
@@ -3776,8 +3774,7 @@ recv_done(isc_task_t *task, isc_event_t *event) {
                goto udp_mismatch;
        }
 
-       result = dns_message_create(mctx, DNS_MESSAGE_INTENTPARSE, &msg);
-       check_result(result, "dns_message_create");
+       dns_message_create(mctx, DNS_MESSAGE_INTENTPARSE, &msg);
 
        if (tsigkey != NULL) {
                if (l->querysig == NULL) {
index b3fed5d500603d6c3839015b00e6f1a02ec0be18..2d10feb95d0c9a5c1568ca74cd7eb6aeedc1e526 100644 (file)
@@ -350,16 +350,12 @@ nsu_strsep(char **stringp, const char *delim) {
 
 static void
 reset_system(void) {
-       isc_result_t result;
-
        ddebug("reset_system()");
        /* If the update message is still around, destroy it */
        if (updatemsg != NULL) {
                dns_message_reset(updatemsg, DNS_MESSAGE_INTENTRENDER);
        } else {
-               result = dns_message_create(gmctx, DNS_MESSAGE_INTENTRENDER,
-                                           &updatemsg);
-               check_result(result, "dns_message_create");
+               dns_message_create(gmctx, DNS_MESSAGE_INTENTRENDER, &updatemsg);
        }
        updatemsg->opcode = dns_opcode_update;
        if (usegsstsig) {
@@ -2413,8 +2409,7 @@ update_completed(isc_task_t *task, isc_event_t *event) {
        }
 
        LOCK(&answer_lock);
-       result = dns_message_create(gmctx, DNS_MESSAGE_INTENTPARSE, &answer);
-       check_result(result, "dns_message_create");
+       dns_message_create(gmctx, DNS_MESSAGE_INTENTPARSE, &answer);
        result = dns_request_getresponse(request, answer,
                                         DNS_MESSAGEPARSE_PRESERVEORDER);
        switch (result) {
@@ -2606,8 +2601,7 @@ recvsoa(isc_task_t *task, isc_event_t *event) {
        reqev = NULL;
 
        ddebug("About to create rcvmsg");
-       result = dns_message_create(gmctx, DNS_MESSAGE_INTENTPARSE, &rcvmsg);
-       check_result(result, "dns_message_create");
+       dns_message_create(gmctx, DNS_MESSAGE_INTENTPARSE, &rcvmsg);
        result = dns_request_getresponse(request, rcvmsg,
                                         DNS_MESSAGEPARSE_PRESERVEORDER);
        if (result == DNS_R_TSIGERRORSET && servers != NULL) {
@@ -2977,11 +2971,7 @@ start_gssrequest(dns_name_t *master) {
        keyname->attributes |= DNS_NAMEATTR_NOCOMPRESS;
 
        rmsg = NULL;
-       result = dns_message_create(gmctx, DNS_MESSAGE_INTENTRENDER, &rmsg);
-       if (result != ISC_R_SUCCESS) {
-               fatal("dns_message_create failed: %s",
-                     isc_result_totext(result));
-       }
+       dns_message_create(gmctx, DNS_MESSAGE_INTENTRENDER, &rmsg);
 
        /* Build first request. */
        context = GSS_C_NO_CONTEXT;
@@ -3107,8 +3097,7 @@ recvgss(isc_task_t *task, isc_event_t *event) {
        reqev = NULL;
 
        ddebug("recvgss creating rcvmsg");
-       result = dns_message_create(gmctx, DNS_MESSAGE_INTENTPARSE, &rcvmsg);
-       check_result(result, "dns_message_create");
+       dns_message_create(gmctx, DNS_MESSAGE_INTENTPARSE, &rcvmsg);
 
        result = dns_request_getresponse(request, rcvmsg,
                                         DNS_MESSAGEPARSE_PRESERVEORDER);
@@ -3233,8 +3222,7 @@ start_update(void) {
                return;
        }
 
-       result = dns_message_create(gmctx, DNS_MESSAGE_INTENTRENDER, &soaquery);
-       check_result(result, "dns_message_create");
+       dns_message_create(gmctx, DNS_MESSAGE_INTENTRENDER, &soaquery);
 
        if (default_servers) {
                soaquery->flags |= DNS_MESSAGEFLAG_RD;
index 7bafdc66b044b14e54288b53ba8e232e7dc6a5d6..38335a148e4ee723a65f44bd2db09433a47ae297 100644 (file)
@@ -87,8 +87,7 @@ recvresponse(isc_task_t *task, isc_event_t *event) {
        query = reqev->ev_arg;
 
        response = NULL;
-       result = dns_message_create(mctx, DNS_MESSAGE_INTENTPARSE, &response);
-       CHECK("dns_message_create", result);
+       dns_message_create(mctx, DNS_MESSAGE_INTENTPARSE, &response);
 
        result = dns_request_getresponse(reqev->request, response,
                                         DNS_MESSAGEPARSE_PRESERVEORDER);
@@ -152,8 +151,7 @@ sendquery(isc_task_t *task) {
        CHECK("dns_name_fromtext", result);
 
        message = NULL;
-       result = dns_message_create(mctx, DNS_MESSAGE_INTENTRENDER, &message);
-       CHECK("dns_message_create", result);
+       dns_message_create(mctx, DNS_MESSAGE_INTENTRENDER, &message);
 
        message->opcode = dns_opcode_query;
        message->flags |= DNS_MESSAGEFLAG_RD;
index 8fa5a7d2f1101b74754e32fe85353ce11f2caf1b..e2ecc7476107124c1167dc991074066a3f5d3285 100644 (file)
@@ -88,8 +88,7 @@ recvquery(isc_task_t *task, isc_event_t *event) {
        query = reqev->ev_arg;
 
        response = NULL;
-       result = dns_message_create(mctx, DNS_MESSAGE_INTENTPARSE, &response);
-       CHECK("dns_message_create", result);
+       dns_message_create(mctx, DNS_MESSAGE_INTENTPARSE, &response);
 
        result = dns_request_getresponse(reqev->request, response,
                                         DNS_MESSAGEPARSE_PRESERVEORDER);
@@ -176,8 +175,7 @@ sendquery(isc_task_t *task, isc_event_t *event) {
        CHECK("dns_tsigkey_create", result);
 
        query = NULL;
-       result = dns_message_create(mctx, DNS_MESSAGE_INTENTRENDER, &query);
-       CHECK("dns_message_create", result);
+       dns_message_create(mctx, DNS_MESSAGE_INTENTRENDER, &query);
 
        result = dns_tkey_builddhquery(query, ourkey,
                                       dns_fixedname_name(&ownername),
index 15fb84b2f0e8e13d7018c9c208a4efa927b99d3b..2fb173bd39523ce0c03847871ad05d48f1b17737 100644 (file)
@@ -79,8 +79,7 @@ recvquery(isc_task_t *task, isc_event_t *event) {
        query = reqev->ev_arg;
 
        response = NULL;
-       result = dns_message_create(mctx, DNS_MESSAGE_INTENTPARSE, &response);
-       CHECK("dns_message_create", result);
+       dns_message_create(mctx, DNS_MESSAGE_INTENTPARSE, &response);
 
        result = dns_request_getresponse(reqev->request, response,
                                         DNS_MESSAGEPARSE_PRESERVEORDER);
@@ -121,8 +120,7 @@ sendquery(isc_task_t *task, isc_event_t *event) {
        isc_sockaddr_fromin(&address, &inaddr, port);
 
        query = NULL;
-       result = dns_message_create(mctx, DNS_MESSAGE_INTENTRENDER, &query);
-       CHECK("dns_message_create", result);
+       dns_message_create(mctx, DNS_MESSAGE_INTENTRENDER, &query);
 
        result = dns_tkey_builddeletequery(query, tsigkey);
        CHECK("dns_tkey_builddeletequery", result);
index f420d8992cbe9580c800b281faaea570db180245..107f2cc7a1b0badf176b8fa6d9906db8a2a956b5 100644 (file)
@@ -277,8 +277,7 @@ process_message(isc_buffer_t *source) {
        int i;
 
        message = NULL;
-       result = dns_message_create(mctx, DNS_MESSAGE_INTENTPARSE, &message);
-       CHECKRESULT(result, "dns_message_create failed");
+       dns_message_create(mctx, DNS_MESSAGE_INTENTPARSE, &message);
 
        result = dns_message_parse(message, source, parseflags);
        if (result == DNS_R_RECOVERABLE) {
@@ -348,9 +347,7 @@ process_message(isc_buffer_t *source) {
                        isc_mem_stats(mctx, stdout);
                }
 
-               result = dns_message_create(mctx, DNS_MESSAGE_INTENTPARSE,
-                                           &message);
-               CHECKRESULT(result, "dns_message_create failed");
+               dns_message_create(mctx, DNS_MESSAGE_INTENTPARSE, &message);
 
                result = dns_message_parse(message, &buffer, parseflags);
                CHECKRESULT(result, "dns_message_parse failed");
index 0f7ddcdffb14afd06e4bfc0da95525ab21f0d5c9..c6e4ea43160b0c9dfa1dc7400d3d65ca537e113c 100644 (file)
@@ -210,8 +210,7 @@ recvresponse(isc_task_t *task, isc_event_t *event) {
                }
        }
 
-       result = dns_message_create(mctx, DNS_MESSAGE_INTENTPARSE, &response);
-       CHECK("dns_message_create", result);
+       dns_message_create(mctx, DNS_MESSAGE_INTENTPARSE, &response);
 
        parseflags |= DNS_MESSAGEPARSE_PRESERVEORDER;
        if (besteffort) {
@@ -594,8 +593,7 @@ sendquery(struct query *query, isc_task_t *task) {
        CHECK("dns_name_fromtext", result);
 
        message = NULL;
-       result = dns_message_create(mctx, DNS_MESSAGE_INTENTRENDER, &message);
-       CHECK("dns_message_create", result);
+       dns_message_create(mctx, DNS_MESSAGE_INTENTRENDER, &message);
 
        message->opcode = dns_opcode_query;
        if (query->recurse) {
diff --git a/cocci/dns_message_create.spatch b/cocci/dns_message_create.spatch
new file mode 100644 (file)
index 0000000..bab6d58
--- /dev/null
@@ -0,0 +1,84 @@
+@@
+statement S;
+expression V;
+@@
+
+- V =
+  dns_message_create(...);
+- if (V != ISC_R_SUCCESS) S
+
+@@
+statement S1, S2;
+expression V;
+@@
+
+- V =
+  dns_message_create(...);
+- if (V == ISC_R_SUCCESS)
+  S1
+- else S2
+
+@@
+expression V;
+@@
+
+- V =
+  dns_message_create(...);
+- check_result(V, ...);
+
+@@
+@@
+
+- CHECK(
+  dns_message_create(...)
+- )
+  ;
+
+@@
+@@
+
+- DO(...,
+  dns_message_create(...)
+- )
+  ;
+
+@@
+@@
+
+- RETERR(
+  dns_message_create(...)
+- )
+  ;
+
+@@
+expression V;
+@@
+
+- V =
+  dns_message_create(...);
+- assert_int_equal(V, ISC_R_SUCCESS);
+
+@@
+expression V;
+@@
+
+- V =
+  dns_message_create(...);
+- CHECK(..., V);
+
+@@
+expression V;
+statement S;
+@@
+
+- V =
+  dns_message_create(...);
+- if (ISC_UNLIKELY(V != ISC_R_SUCCESS)) S
+
+@@
+expression V;
+@@
+
+- V =
+  dns_message_create(...);
+- RUNTIME_CHECK(V == ISC_R_SUCCESS);
index 0f80465b43e3f4cbb937fac3d116f689d233931a..1b7f24573a9cea0ff5937ab816a91cd46ec30974 100644 (file)
@@ -47,10 +47,7 @@ parse_message(isc_buffer_t *input, dns_message_t **messagep) {
        isc_result_t result;
        dns_message_t *message = NULL;
 
-       result = dns_message_create(mctx, DNS_MESSAGE_INTENTPARSE, &message);
-       if (result != ISC_R_SUCCESS) {
-               return (result);
-       }
+       dns_message_create(mctx, DNS_MESSAGE_INTENTPARSE, &message);
 
        result = dns_message_parse(message, input, DNS_MESSAGEPARSE_BESTEFFORT);
        if (result == DNS_R_RECOVERABLE) {
index 2f188551883b5ca6adc1128ca3c0634a646139dd..c1a9b95d87e3ab1bda1fe380e77d75452c2a8a76 100644 (file)
@@ -1936,11 +1936,7 @@ update_done(isc_task_t *task, isc_event_t *event) {
                goto out;
        }
 
-       result = dns_message_create(client->mctx, DNS_MESSAGE_INTENTPARSE,
-                                   &answer);
-       if (result != ISC_R_SUCCESS) {
-               goto out;
-       }
+       dns_message_create(client->mctx, DNS_MESSAGE_INTENTPARSE, &answer);
        uctx->state = dns_clientupdatestate_done;
        result = dns_request_getresponse(request, answer,
                                         DNS_MESSAGEPARSE_PRESERVEORDER);
@@ -2270,11 +2266,8 @@ receive_soa(isc_task_t *task, isc_event_t *event) {
                goto out;
        }
 
-       result = dns_message_create(uctx->client->mctx, DNS_MESSAGE_INTENTPARSE,
-                                   &rcvmsg);
-       if (result != ISC_R_SUCCESS) {
-               goto out;
-       }
+       dns_message_create(uctx->client->mctx, DNS_MESSAGE_INTENTPARSE,
+                          &rcvmsg);
        result = dns_request_getresponse(request, rcvmsg,
                                         DNS_MESSAGEPARSE_PRESERVEORDER);
 
@@ -2421,12 +2414,8 @@ request_soa(updatectx_t *uctx) {
        unsigned int reqoptions;
 
        if (soaquery == NULL) {
-               result = dns_message_create(uctx->client->mctx,
-                                           DNS_MESSAGE_INTENTRENDER,
-                                           &soaquery);
-               if (result != ISC_R_SUCCESS) {
-                       return (result);
-               }
+               dns_message_create(uctx->client->mctx, DNS_MESSAGE_INTENTRENDER,
+                                  &soaquery);
        }
        soaquery->flags |= DNS_MESSAGEFLAG_RD;
        result = dns_message_gettempname(soaquery, &name);
@@ -2878,11 +2867,8 @@ dns_client_startupdate(dns_client_t *client, dns_rdataclass_t rdclass,
        }
 
        /* Make update message */
-       result = dns_message_create(client->mctx, DNS_MESSAGE_INTENTRENDER,
-                                   &uctx->updatemsg);
-       if (result != ISC_R_SUCCESS) {
-               goto fail;
-       }
+       dns_message_create(client->mctx, DNS_MESSAGE_INTENTRENDER,
+                          &uctx->updatemsg);
        uctx->updatemsg->opcode = dns_opcode_update;
 
        if (prerequisites != NULL) {
index 064f1b25865a617763ba2b05c37062fc88209e6b..44fb25e73ce6091d9eda77ff8d3cff2618cd9db2 100644 (file)
@@ -1143,7 +1143,7 @@ dns_dt_parse(isc_mem_t *mctx, isc_region_t *src, dns_dtdata_t **destp) {
 
        isc_buffer_init(&b, d->msgdata.base, d->msgdata.length);
        isc_buffer_add(&b, d->msgdata.length);
-       CHECK(dns_message_create(mctx, DNS_MESSAGE_INTENTPARSE, &d->msg));
+       dns_message_create(mctx, DNS_MESSAGE_INTENTPARSE, &d->msg);
        result = dns_message_parse(d->msg, &b, 0);
        if (result != ISC_R_SUCCESS) {
                if (result != DNS_R_RECOVERABLE) {
index 1f13bcf2fd3617411c84e0c4318f8196dfdd4cbd..f1927863bf176225b73697761c916e9772499354 100644 (file)
@@ -9,8 +9,7 @@
  * information regarding copyright ownership.
  */
 
-#ifndef DNS_MESSAGE_H
-#define DNS_MESSAGE_H 1
+#pragma once
 
 /***
  ***   Imports
@@ -203,8 +202,8 @@ struct dns_sortlist_arg {
 
 struct dns_message {
        /* public from here down */
-       unsigned int magic;
-       isc_refcount_t    refcount;
+       unsigned int   magic;
+       isc_refcount_t refcount;
 
        dns_messageid_t  id;
        unsigned int     flags;
@@ -295,7 +294,7 @@ struct dns_ednsopt {
 
 ISC_LANG_BEGINDECLS
 
-isc_result_t
+void
 dns_message_create(isc_mem_t *mctx, unsigned int intent, dns_message_t **msgp);
 
 /*%<
@@ -1506,5 +1505,3 @@ dns_message_clonebuffer(dns_message_t *msg);
  */
 
 ISC_LANG_ENDDECLS
-
-#endif /* DNS_MESSAGE_H */
index b8fd4dee937b576aa2b793e2527f50cc13744ae3..03b723045f5a445b0b4b051b938b76ba5f49fa07 100644 (file)
@@ -714,7 +714,7 @@ spacefortsig(dns_tsigkey_t *key, int otherlen) {
        return (26 + r1.length + r2.length + x + otherlen);
 }
 
-isc_result_t
+void
 dns_message_create(isc_mem_t *mctx, unsigned int intent, dns_message_t **msgp) {
        dns_message_t *m;
        isc_buffer_t *dynbuf;
@@ -728,11 +728,6 @@ dns_message_create(isc_mem_t *mctx, unsigned int intent, dns_message_t **msgp) {
 
        m = isc_mem_get(mctx, sizeof(dns_message_t));
 
-       /*
-        * No allocations until further notice.  Just initialize all lists
-        * and other members that are freed in the cleanup phase here.
-        */
-
        m->magic = DNS_MESSAGE_MAGIC;
        m->from_to_wire = intent;
        msginit(m);
@@ -754,10 +749,6 @@ dns_message_create(isc_mem_t *mctx, unsigned int intent, dns_message_t **msgp) {
        ISC_LIST_INIT(m->freerdata);
        ISC_LIST_INIT(m->freerdatalist);
 
-       /*
-        * Ok, it is safe to allocate (and then "goto cleanup" if failure)
-        */
-
        isc_mempool_create(m->mctx, sizeof(dns_name_t), &m->namepool);
        isc_mempool_setfillcount(m->namepool, NAME_COUNT);
        isc_mempool_setfreemax(m->namepool, NAME_COUNT);
@@ -777,7 +768,6 @@ dns_message_create(isc_mem_t *mctx, unsigned int intent, dns_message_t **msgp) {
        isc_refcount_init(&m->refcount, 1);
 
        *msgp = m;
-       return (ISC_R_SUCCESS);
 }
 
 void
index a5f95e7f1640f29a0619327841fa05d3eb7206dc..f7e4d0d1a7e48956062297d5d2dd335fc310dd88 100644 (file)
@@ -2020,8 +2020,8 @@ fctx_query(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo,
 
        query = isc_mem_get(fctx->mctx, sizeof(*query));
        query->rmessage = NULL;
-       result = dns_message_create(fctx->mctx, DNS_MESSAGE_INTENTPARSE,
-                                   &query->rmessage);
+       dns_message_create(fctx->mctx, DNS_MESSAGE_INTENTPARSE,
+                          &query->rmessage);
        query->mctx = fctx->mctx;
        query->options = options;
        query->attributes = 0;
@@ -5130,12 +5130,7 @@ fctx_create(dns_resolver_t *res, const dns_name_t *name, dns_rdatatype_t type,
        }
 
        fctx->qmessage = NULL;
-       result = dns_message_create(mctx, DNS_MESSAGE_INTENTRENDER,
-                                   &fctx->qmessage);
-
-       if (result != ISC_R_SUCCESS) {
-               goto cleanup_fcount;
-       }
+       dns_message_create(mctx, DNS_MESSAGE_INTENTRENDER, &fctx->qmessage);
 
        /*
         * Compute an expiration time for the entire fetch.
index 85821b1258266ef5f627ae7857d3ad8281188b49..e5bae9864b6c45dd8d8aba99499da5720e12d751 100644 (file)
@@ -209,8 +209,7 @@ render(isc_buffer_t *buf, unsigned flags, dns_tsigkey_t *key,
        dns_compress_t cctx;
        isc_result_t result;
 
-       result = dns_message_create(dt_mctx, DNS_MESSAGE_INTENTRENDER, &msg);
-       assert_int_equal(result, ISC_R_SUCCESS);
+       dns_message_create(dt_mctx, DNS_MESSAGE_INTENTRENDER, &msg);
        assert_non_null(msg);
 
        msg->id = 50;
@@ -322,8 +321,7 @@ tsig_tcp_test(void **state) {
        /*
         * Process response message 1.
         */
-       result = dns_message_create(dt_mctx, DNS_MESSAGE_INTENTPARSE, &msg);
-       assert_int_equal(result, ISC_R_SUCCESS);
+       dns_message_create(dt_mctx, DNS_MESSAGE_INTENTPARSE, &msg);
        assert_non_null(msg);
 
        result = dns_message_settsigkey(msg, key);
@@ -377,8 +375,7 @@ tsig_tcp_test(void **state) {
        /*
         * Process response message 2.
         */
-       result = dns_message_create(dt_mctx, DNS_MESSAGE_INTENTPARSE, &msg);
-       assert_int_equal(result, ISC_R_SUCCESS);
+       dns_message_create(dt_mctx, DNS_MESSAGE_INTENTPARSE, &msg);
        assert_non_null(msg);
 
        msg->tcp_continuation = 1;
@@ -424,8 +421,7 @@ tsig_tcp_test(void **state) {
        /*
         * Process response message 3.
         */
-       result = dns_message_create(dt_mctx, DNS_MESSAGE_INTENTPARSE, &msg);
-       assert_int_equal(result, ISC_R_SUCCESS);
+       dns_message_create(dt_mctx, DNS_MESSAGE_INTENTPARSE, &msg);
        assert_non_null(msg);
 
        msg->tcp_continuation = 1;
index d24816af28d844971058152cdab78d8d20e4da81..952d16a481bf7db50d793a6af88d289f77109666 100644 (file)
@@ -1104,7 +1104,7 @@ xfrin_send_request(dns_xfrin_ctx_t *xfr) {
        dns_name_t *msgsoaname = NULL;
 
        /* Create the request message */
-       CHECK(dns_message_create(xfr->mctx, DNS_MESSAGE_INTENTRENDER, &msg));
+       dns_message_create(xfr->mctx, DNS_MESSAGE_INTENTRENDER, &msg);
        CHECK(dns_message_settsigkey(msg, xfr->tsigkey));
 
        /* Create a name for the question section. */
@@ -1254,7 +1254,7 @@ xfrin_recv_done(isc_task_t *task, isc_event_t *ev) {
 
        CHECK(isc_timer_touch(xfr->timer));
 
-       CHECK(dns_message_create(xfr->mctx, DNS_MESSAGE_INTENTPARSE, &msg));
+       dns_message_create(xfr->mctx, DNS_MESSAGE_INTENTPARSE, &msg);
 
        CHECK(dns_message_settsigkey(msg, xfr->tsigkey));
        CHECK(dns_message_setquerytsig(msg, xfr->lasttsig));
index 267735ee5df401383f3cd55ac91479e89ed002f1..1faa26d85388773fab956e99946d6e1997c87170 100644 (file)
@@ -12639,10 +12639,7 @@ stub_callback(isc_task_t *task, isc_event_t *event) {
                goto next_master;
        }
 
-       result = dns_message_create(zone->mctx, DNS_MESSAGE_INTENTPARSE, &msg);
-       if (result != ISC_R_SUCCESS) {
-               goto next_master;
-       }
+       dns_message_create(zone->mctx, DNS_MESSAGE_INTENTPARSE, &msg);
 
        result = dns_request_getresponse(revent->request, msg, 0);
        if (result != ISC_R_SUCCESS) {
@@ -13044,10 +13041,7 @@ refresh_callback(isc_task_t *task, isc_event_t *event) {
                goto next_master;
        }
 
-       result = dns_message_create(zone->mctx, DNS_MESSAGE_INTENTPARSE, &msg);
-       if (result != ISC_R_SUCCESS) {
-               goto next_master;
-       }
+       dns_message_create(zone->mctx, DNS_MESSAGE_INTENTPARSE, &msg);
        result = dns_request_getresponse(revent->request, msg, 0);
        if (result != ISC_R_SUCCESS) {
                dns_zone_log(zone, ISC_LOG_INFO,
@@ -13430,11 +13424,7 @@ create_query(dns_zone_t *zone, dns_rdatatype_t rdtype,
        dns_rdataset_t *qrdataset = NULL;
        isc_result_t result;
 
-       result = dns_message_create(zone->mctx, DNS_MESSAGE_INTENTRENDER,
-                                   &message);
-       if (result != ISC_R_SUCCESS) {
-               goto cleanup;
-       }
+       dns_message_create(zone->mctx, DNS_MESSAGE_INTENTRENDER, &message);
 
        message->opcode = dns_opcode_query;
        message->rdclass = zone->rdclass;
@@ -14313,11 +14303,7 @@ notify_createmessage(dns_zone_t *zone, unsigned int flags,
        REQUIRE(DNS_ZONE_VALID(zone));
        REQUIRE(messagep != NULL && *messagep == NULL);
 
-       result = dns_message_create(zone->mctx, DNS_MESSAGE_INTENTRENDER,
-                                   &message);
-       if (result != ISC_R_SUCCESS) {
-               return (result);
-       }
+       dns_message_create(zone->mctx, DNS_MESSAGE_INTENTRENDER, &message);
 
        message->opcode = dns_opcode_notify;
        message->flags |= DNS_MESSAGEFLAG_AA;
@@ -15245,12 +15231,10 @@ notify_done(isc_task_t *task, isc_event_t *event) {
 
        isc_buffer_init(&buf, rcode, sizeof(rcode));
        isc_sockaddr_format(&notify->dst, addrbuf, sizeof(addrbuf));
+       dns_message_create(notify->zone->mctx, DNS_MESSAGE_INTENTPARSE,
+                          &message);
 
        result = revent->result;
-       if (result == ISC_R_SUCCESS) {
-               result = dns_message_create(notify->zone->mctx,
-                                           DNS_MESSAGE_INTENTPARSE, &message);
-       }
        if (result == ISC_R_SUCCESS) {
                result =
                        dns_request_getresponse(revent->request, message,
@@ -15274,7 +15258,7 @@ notify_done(isc_task_t *task, isc_event_t *event) {
         * the soa if we see a formerr and had sent a SOA.
         */
        isc_event_free(&event);
-       if (message != NULL && message->rcode == dns_rcode_formerr &&
+       if (message->rcode == dns_rcode_formerr &&
            (notify->flags & DNS_NOTIFY_NOSOA) == 0)
        {
                bool startup;
@@ -15293,9 +15277,7 @@ notify_done(isc_task_t *task, isc_event_t *event) {
                }
                notify_destroy(notify, false);
        }
-       if (message != NULL) {
-               dns_message_detach(&message);
-       }
+       dns_message_detach(&message);
 }
 
 struct secure_event {
@@ -17259,10 +17241,7 @@ forward_callback(isc_task_t *task, isc_event_t *event) {
                goto next_master;
        }
 
-       result = dns_message_create(zone->mctx, DNS_MESSAGE_INTENTPARSE, &msg);
-       if (result != ISC_R_SUCCESS) {
-               goto next_master;
-       }
+       dns_message_create(zone->mctx, DNS_MESSAGE_INTENTPARSE, &msg);
 
        result = dns_request_getresponse(revent->request, msg,
                                         DNS_MESSAGEPARSE_PRESERVEORDER |
index 021d19eec181d489a189c88e38a707ae7b9e1da3..a2eed9250d765e783941a98ef417657a45550c2c 100644 (file)
@@ -2277,12 +2277,8 @@ ns__client_setup(ns_client_t *client, ns_clientmgr_t *mgr, bool new) {
                ns_server_attach(mgr->sctx, &client->sctx);
                get_clienttask(mgr, &client->task);
 
-               result = dns_message_create(client->mctx,
-                                           DNS_MESSAGE_INTENTPARSE,
-                                           &client->message);
-               if (result != ISC_R_SUCCESS) {
-                       goto cleanup;
-               }
+               dns_message_create(client->mctx, DNS_MESSAGE_INTENTPARSE,
+                                  &client->message);
 
                client->sendbuf = isc_mem_get(client->mctx,
                                              NS_CLIENT_SEND_BUFFER_SIZE);
index ce97dd9fdce5db037136c65aa26d4e137cc1bb8d..b013dc209cea930130ed8e7fc674c9dd2aa21df3 100644 (file)
@@ -66,8 +66,7 @@ check_response(isc_buffer_t *buf) {
        char rcodebuf[20];
        isc_buffer_t b;
 
-       result = dns_message_create(mctx, DNS_MESSAGE_INTENTPARSE, &message);
-       assert_int_equal(result, ISC_R_SUCCESS);
+       dns_message_create(mctx, DNS_MESSAGE_INTENTPARSE, &message);
 
        result = dns_message_parse(message, buf, 0);
        assert_int_equal(result, ISC_R_SUCCESS);
@@ -115,8 +114,7 @@ notify_start(void **state) {
        isc_buffer_init(&nbuf, ndata, nsize);
        isc_buffer_add(&nbuf, nsize);
 
-       result = dns_message_create(mctx, DNS_MESSAGE_INTENTPARSE, &nmsg);
-       assert_int_equal(result, ISC_R_SUCCESS);
+       dns_message_create(mctx, DNS_MESSAGE_INTENTPARSE, &nmsg);
 
        result = dns_message_parse(nmsg, &nbuf, 0);
        assert_int_equal(result, ISC_R_SUCCESS);
index 17989147b37aa89a54b53545bd7f2c919ce5d71a..039e158a785db34a48dca0075e53280f301baa5f 100644 (file)
@@ -614,10 +614,7 @@ attach_query_msg_to_client(ns_client_t *client, const char *qnamestr,
        /*
         * Create a new DNS message holding a query.
         */
-       result = dns_message_create(mctx, DNS_MESSAGE_INTENTRENDER, &message);
-       if (result != ISC_R_SUCCESS) {
-               return (result);
-       }
+       dns_message_create(mctx, DNS_MESSAGE_INTENTRENDER, &message);
 
        /*
         * Set query ID to a random value.
index 3118e709422168d01721a7bf378a738d3d24fb80..9eb283ff0015dfba0392d14f84f329e2de93a732 100644 (file)
@@ -1334,8 +1334,8 @@ sendstream(xfrout_ctx_t *xfr) {
                 * message.
                 */
 
-               CHECK(dns_message_create(xfr->mctx, DNS_MESSAGE_INTENTRENDER,
-                                        &tcpmsg));
+               dns_message_create(xfr->mctx, DNS_MESSAGE_INTENTRENDER,
+                                  &tcpmsg);
                msg = tcpmsg;
 
                msg->id = xfr->id;
index 141d481bc0b1bfaf2011962a7a3c0fe0dd3e5ec4..eb626086f03a427ee801caa598cc6760bd32a4c0 100644 (file)
@@ -1170,17 +1170,10 @@ main(int argc, char *argv[]) {
                probes[i].reqid = NULL;
 
                probes[i].qmessage = NULL;
-               result = dns_message_create(mctx, DNS_MESSAGE_INTENTRENDER,
-                                           &probes[i].qmessage);
-               if (result == ISC_R_SUCCESS) {
-                       result = dns_message_create(mctx,
-                                                   DNS_MESSAGE_INTENTPARSE,
-                                                   &probes[i].rmessage);
-               }
-               if (result != ISC_R_SUCCESS) {
-                       fprintf(stderr, "initialization failure\n");
-                       exit(1);
-               }
+               dns_message_create(mctx, DNS_MESSAGE_INTENTRENDER,
+                                  &probes[i].qmessage);
+               dns_message_create(mctx, DNS_MESSAGE_INTENTPARSE,
+                                  &probes[i].rmessage);
        }
        for (i = 0; i < MAX_PROBES; i++) {
                result = probe_domain(&probes[i]);
index af5ec1e2d96f98fb35555457b53d715116e9e904..00ff2d58d3a7cc9ed4c9b6e0aa262427c76275e2 100644 (file)
@@ -191,15 +191,8 @@ main(int argc, char *argv[]) {
        rmessage = NULL;
 
        isc_mem_create(&mctx);
-       result = dns_message_create(mctx, DNS_MESSAGE_INTENTRENDER, &qmessage);
-       if (result == ISC_R_SUCCESS) {
-               result = dns_message_create(mctx, DNS_MESSAGE_INTENTPARSE,
-                                           &rmessage);
-       }
-       if (result != ISC_R_SUCCESS) {
-               fprintf(stderr, "failed to create messages\n");
-               exit(1);
-       }
+       dns_message_create(mctx, DNS_MESSAGE_INTENTRENDER, &qmessage);
+       dns_message_create(mctx, DNS_MESSAGE_INTENTPARSE, &rmessage);
 
        /* Initialize the nameserver address */
        memset(&hints, 0, sizeof(hints));