about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2019-04-11 11:37:47 +0200
committerFlorian Weimer <fweimer@redhat.com>2019-04-11 11:37:47 +0200
commite3f454bac0f968216699ca405c127c858f0657c7 (patch)
tree9239772773f3b761aa4bdf09585bd9fccbff4c57
parent32d85c116dd07b25f58b24204e7b05489f06fed4 (diff)
downloadglibc-e3f454bac0f968216699ca405c127c858f0657c7.tar.gz
glibc-e3f454bac0f968216699ca405c127c858f0657c7.tar.xz
glibc-e3f454bac0f968216699ca405c127c858f0657c7.zip
nss_dns: Do not replace root domain with empty string
The purpose of the bp[0] == '.' check is unclear.  Only the root domain
starts with '.'.  The empty string is accepted as a domain name in many
places, denoting the root, but using it implicitly is confusing.
-rw-r--r--ChangeLog6
-rw-r--r--resolv/nss_dns/dns-host.c3
-rw-r--r--resolv/nss_dns/dns-network.c3
3 files changed, 6 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 1d0ba7165c..1cb1255ab9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2019-04-11  Florian Weimer  <fweimer@redhat.com>
 
+	* resolv/nss_dns/dns-network.c (getanswer_r): Do not replace root
+	domain with empty string.
+	* resolv/nss_dns/dns-host.c (getanswer_r): Likewise.
+
+2019-04-11  Florian Weimer  <fweimer@redhat.com>
+
 	* include/alloc_buffer.h (alloc_buffer_alloc_bytes): Update
 	comment.
 	(alloc_buffer_next): Change return type to non-const.  Update
diff --git a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c
index a18b8a6bf4..9c15f25f28 100644
--- a/resolv/nss_dns/dns-host.c
+++ b/resolv/nss_dns/dns-host.c
@@ -706,9 +706,6 @@ getanswer_r (struct resolv_context *ctx,
       n = -1;
     }
 
-  if (n > 0 && bp[0] == '.')
-    bp[0] = '\0';
-
   if (__glibc_unlikely (n < 0))
     {
       *errnop = errno;
diff --git a/resolv/nss_dns/dns-network.c b/resolv/nss_dns/dns-network.c
index 4b81b1bfdc..21688c19b2 100644
--- a/resolv/nss_dns/dns-network.c
+++ b/resolv/nss_dns/dns-network.c
@@ -345,9 +345,6 @@ getanswer_r (const querybuf *answer, int anslen, struct netent *result,
 	  n = -1;
 	}
 
-      if (n > 0 && bp[0] == '.')
-	bp[0] = '\0';
-
       if (n < 0 || res_dnok (bp) == 0)
 	break;
       cp += n;