From 14084d8eac43f32ecfcac1ad493d6bac6449b1a6 Mon Sep 17 00:00:00 2001 From: Aram Sargsyan Date: Mon, 12 Dec 2022 12:08:16 +0000 Subject: [PATCH] Perform request validation in req_response() before using the pointer The 'request' pointer is used before it is checked. Perform the check before using the pointer. (cherry picked from commit 5b373596975862b4f6df2f70516db02683a9e7fc) --- lib/dns/request.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/dns/request.c b/lib/dns/request.c index 1103bea49f..8f53d37812 100644 --- a/lib/dns/request.c +++ b/lib/dns/request.c @@ -1057,6 +1057,8 @@ req_response(isc_result_t result, isc_region_t *region, void *arg) { req_log(ISC_LOG_DEBUG(3), "req_response: request %p: %s", request, isc_result_totext(result)); + REQUIRE(VALID_REQUEST(request)); + if (result == ISC_R_TIMEDOUT) { LOCK(&request->requestmgr->locks[request->hash]); if (request->udpcount > 1) { @@ -1074,8 +1076,6 @@ req_response(isc_result_t result, isc_region_t *region, void *arg) { goto done; } - REQUIRE(VALID_REQUEST(request)); - LOCK(&request->requestmgr->locks[request->hash]); if (result != ISC_R_SUCCESS) {