[PATCH] dns_server: Don't call tevent_req_finish twice

Volker Lendecke Volker.Lendecke at SerNet.DE
Fri Aug 7 06:03:12 UTC 2015


Hi!

The attached patch is not tested, but I saw the sequence

	if (tevent_req_werror(req, err)) {
		if (!W_ERROR_EQUAL(err, DNS_ERR(NAME_ERROR))) {
			return tevent_req_post(req, ev);
		}
	}
	tevent_req_done(req);
	return tevent_req_post(req, ev);

which calls both tevent_req_werror and tevent_req_done in
case of NAME_ERROR. I believe this is not the right thing to
do.

Please review & potentially push!

Thanks,

Volker

-- 
SerNet GmbH, Bahnhofsallee 1b, 37081 Göttingen
phone: +49-551-370000-0, fax: +49-551-370000-9
AG Göttingen, HRB 2816, GF: Dr. Johannes Loxen
http://www.sernet.de, mailto:kontakt at sernet.de
-------------- next part --------------
From 809b18d4f6a27663239c3158c25df29c6a3de652 Mon Sep 17 00:00:00 2001
From: Volker Lendecke <vl at samba.org>
Date: Fri, 7 Aug 2015 07:58:20 +0200
Subject: [PATCH] dns_server: Don't call tevent_req_finish twice

Both tevent_req_werror and tevent_req_done call tevent_req_finish on a request.
This should not be done. We should only call either of both.

Signed-off-by: Volker Lendecke <vl at samba.org>
---
 source4/dns_server/dns_query.c |   10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/source4/dns_server/dns_query.c b/source4/dns_server/dns_query.c
index 94f5d49..5ddfb0a 100644
--- a/source4/dns_server/dns_query.c
+++ b/source4/dns_server/dns_query.c
@@ -673,11 +673,15 @@ struct tevent_req *dns_server_process_query_send(
 		err = handle_question(dns, state, &in->questions[0],
 				      &state->answers, &state->ancount,
 				      &state->nsrecs, &state->nscount);
+
+		if (W_ERROR_EQUAL(err, DNS_ERR(NAME_ERROR))) {
+			err = WERR_OK;
+		}
+
 		if (tevent_req_werror(req, err)) {
-			if (!W_ERROR_EQUAL(err, DNS_ERR(NAME_ERROR))) {
-				return tevent_req_post(req, ev);
-			}
+			return tevent_req_post(req, ev);
 		}
+
 		tevent_req_done(req);
 		return tevent_req_post(req, ev);
 	}
-- 
1.7.9.5



More information about the samba-technical mailing list