Update.
authorUlrich Drepper <drepper@redhat.com>
Sun, 7 May 2000 22:40:26 +0000 (22:40 +0000)
committerUlrich Drepper <drepper@redhat.com>
Sun, 7 May 2000 22:40:26 +0000 (22:40 +0000)
* inet/rcmd.c (rcmd_af): errno is not set if read returns without
reading anything.  Reported by Andries.Brouwer@cwi.nl.

ChangeLog
inet/rcmd.c

index 4eb2e17..c3fc5a9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2000-05-07  Ulrich Drepper  <drepper@redhat.com>
 
+       * inet/rcmd.c (rcmd_af): errno is not set if read returns without
+       reading anything.  Reported by Andries.Brouwer@cwi.nl.
+
        * sysdeps/generic/memccpy.c (__memccpy): Don't use reg_char type
        for x since promotion in comparison might leads to unexpected
        results.  Reported by Dan Pop <Dan.Pop@cern.ch>.
index f3dc1bd..dd0fd35 100644 (file)
@@ -117,6 +117,7 @@ rcmd_af(ahost, rport, locuser, remuser, cmd, fd2p, af)
        char c;
        int refused;
        char num[8];
+       ssize_t n;
 
        if (af != AF_INET && af != AF_INET6)
          {
@@ -265,9 +266,13 @@ rcmd_af(ahost, rport, locuser, remuser, cmd, fd2p, af)
        (void)__write(s, locuser, strlen(locuser)+1);
        (void)__write(s, remuser, strlen(remuser)+1);
        (void)__write(s, cmd, strlen(cmd)+1);
-       if (__read(s, &c, 1) != 1) {
-               (void)fprintf(stderr,
-                   "rcmd: %s: %m\n", *ahost);
+       n = __read(s, &c, 1);
+       if (n != 1) {
+               if (n == 0)
+                       (void)fprintf(stderr, _("rcmd: %s: short read"),
+                                     *ahost);
+               else
+                       (void)fprintf(stderr, "rcmd: %s: %m\n", *ahost);
                goto bad2;
        }
        if (c != 0) {