about summary refs log tree commit diff
path: root/hurd/get-host.c
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2017-09-07 00:51:17 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2017-09-07 00:51:17 +0200
commit507fe02799e7dbaba9ebaf3264731fc3b928ba77 (patch)
tree5573377298259c7dd56e105b725aadaaa5ccd1d2 /hurd/get-host.c
parent7bbbb4b9f7033be9ffbaf691d886b23b363bcf53 (diff)
downloadglibc-507fe02799e7dbaba9ebaf3264731fc3b928ba77.tar.gz
glibc-507fe02799e7dbaba9ebaf3264731fc3b928ba77.tar.xz
glibc-507fe02799e7dbaba9ebaf3264731fc3b928ba77.zip
hurd: fix gethostname(NULL, 0)
	* hurd/get-host.c (_hurd_get_host_config): Also check that more == 0
	before assuming that the file is empty.  Avoid testing buffer content
	when nread == 0.
Diffstat (limited to 'hurd/get-host.c')
-rw-r--r--hurd/get-host.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/hurd/get-host.c b/hurd/get-host.c
index be8345fbf9..e5d0539275 100644
--- a/hurd/get-host.c
+++ b/hurd/get-host.c
@@ -65,7 +65,7 @@ _hurd_get_host_config (const char *item, char *buf, size_t buflen)
     }
 
   /* If the file is empty, give an empty value.  */
-  if (nread == 0)
+  if (nread == 0 && more == 0)
     {
       if (buflen != 0)
 	*buf = '\0';
@@ -80,7 +80,7 @@ _hurd_get_host_config (const char *item, char *buf, size_t buflen)
   if (nread < buflen)
     buf[nread] = '\0';
   else
-    if (buf[nread - 1] != '\0')
+    if (nread != 0 && buf[nread - 1] != '\0')
       more = 1;
 
   if (more)