From d1f035bbba57df40407a8c1dfbebc15cf42eccf3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Sur=C3=BD?= Date: Fri, 27 Sep 2019 12:12:14 +0200 Subject: [PATCH] lib/ns/query.c: Fix invalid order of DbC checks that could cause dereference before NULL check --- lib/ns/query.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/ns/query.c b/lib/ns/query.c index 10e7af37f9..4e43b1d92c 100644 --- a/lib/ns/query.c +++ b/lib/ns/query.c @@ -10930,15 +10930,19 @@ log_queryerror(ns_client_t *client, isc_result_t result, int line, int level) { void ns_query_start(ns_client_t *client) { isc_result_t result; - dns_message_t *message = client->message; + dns_message_t *message; dns_rdataset_t *rdataset; ns_client_t *qclient; dns_rdatatype_t qtype; - unsigned int saved_extflags = client->extflags; - unsigned int saved_flags = client->message->flags; + unsigned int saved_extflags; + unsigned int saved_flags; REQUIRE(NS_CLIENT_VALID(client)); + message = client->message; + saved_extflags = client->extflags; + saved_flags = client->message->flags; + CTRACE(ISC_LOG_DEBUG(3), "ns_query_start"); /*