diff --git a/ChangeLog b/ChangeLog index 3e064fb9a9..c40ee5db4f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2017-09-07 Samuel Thibault + + * 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. + 2017-09-06 Adhemerval Zanella [BZ #18858] 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)