[PATCH] Two small dns server fixes

Volker Lendecke Volker.Lendecke at SerNet.DE
Sat Aug 1 16:03:46 UTC 2015


Hi!

Review&push appreciated!

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 058a19e2571bb6bd21b95c0e9610d2059a261bd2 Mon Sep 17 00:00:00 2001
From: Volker Lendecke <vl at samba.org>
Date: Sat, 1 Aug 2015 17:53:56 +0200
Subject: [PATCH 1/2] dns_server: Add NULL check

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

diff --git a/source4/dns_server/dns_query.c b/source4/dns_server/dns_query.c
index 4e3c6cc..de0a433 100644
--- a/source4/dns_server/dns_query.c
+++ b/source4/dns_server/dns_query.c
@@ -91,6 +91,7 @@ static WERROR create_response_rr(const struct dns_name_question *question,
 		break;
 	case DNS_QTYPE_PTR:
 		ans[ai].rdata.ptr_record = talloc_strdup(ans, rec->data.ptr);
+		W_ERROR_HAVE_NO_MEMORY(ans[ai].rdata.ptr_record);
 		break;
 	case DNS_QTYPE_MX:
 		ans[ai].rdata.mx_record.preference = rec->data.mx.wPriority;
-- 
1.7.9.5


From 87bd1c32482931a775914729be5da6897b169985 Mon Sep 17 00:00:00 2001
From: Volker Lendecke <vl at samba.org>
Date: Sat, 1 Aug 2015 17:59:14 +0200
Subject: [PATCH 2/2] dns_server: Fix CNAME handling

recs[i].wtype is == DNS_TYPE_CNAME, and my understanding of the union is that
data.cname is filled. We get away with this, because ipv4 and ipv6 have the
same char * representation, but it's confusing.

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

diff --git a/source4/dns_server/dns_query.c b/source4/dns_server/dns_query.c
index de0a433..3cafc23 100644
--- a/source4/dns_server/dns_query.c
+++ b/source4/dns_server/dns_query.c
@@ -309,11 +309,7 @@ static WERROR handle_question(struct dns_server *dns,
 			/* First build up the new question */
 			new_q->question_type = question->question_type;
 			new_q->question_class = question->question_class;
-			if (new_q->question_type == DNS_QTYPE_A) {
-				new_q->name = talloc_strdup(new_q, recs[ri].data.ipv4);
-			} else if (new_q->question_type == DNS_QTYPE_AAAA) {
-				new_q->name = talloc_strdup(new_q, recs[ri].data.ipv6);
-			}
+			new_q->name = talloc_strdup(new_q, recs[ri].data.cname);
 			if (new_q->name == NULL) {
 				TALLOC_FREE(new_q);
 				return WERR_NOMEM;
-- 
1.7.9.5



More information about the samba-technical mailing list