[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