Update.
authorUlrich Drepper <drepper@redhat.com>
Thu, 29 Oct 1998 17:48:35 +0000 (17:48 +0000)
committerUlrich Drepper <drepper@redhat.com>
Thu, 29 Oct 1998 17:48:35 +0000 (17:48 +0000)
* sysdeps/unix/sysv/linux/ttyname.c (ttyname): Keep Linux 2.0
kernels in mind when reading /proc/self/fd/FD.
* sysdeps/unix/sysv/linux/ttyname_r.c (__ttyname_r): Likewise.

ChangeLog
sysdeps/unix/sysv/linux/ttyname.c
sysdeps/unix/sysv/linux/ttyname_r.c

index dc2ad0a..8a62253 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 1998-10-29  Ulrich Drepper  <drepper@cygnus.com>
 
+       * sysdeps/unix/sysv/linux/ttyname.c (ttyname): Keep Linux 2.0
+       kernels in mind when reading /proc/self/fd/FD.
+       * sysdeps/unix/sysv/linux/ttyname_r.c (__ttyname_r): Likewise.
+
        * nscd/nscd.c (doc): It's "Name Service" not "Name Switch".
 
        * malloc/mtrace.c (tr_where): Replace snprintf call by mempcpy and
index 40b006a..35eb4b4 100644 (file)
@@ -131,7 +131,9 @@ ttyname (fd)
        }
     }
 
-  if (__readlink (procname, buf, buflen) != -1)
+  if (__readlink (procname, buf, buflen) != -1
+      /* This is for Linux 2.0.  */
+      && buf[0] != '[')
     return buf;
 
   if (fstat (fd, &st) < 0)
index 8306cf5..449942a 100644 (file)
@@ -134,9 +134,9 @@ __ttyname_r (fd, buf, buflen)
   *_fitoa_word (fd, __stpcpy (procname, "/proc/self/fd/"), 10, 0) = '\0';
 
   ret = __readlink (procname, buf, buflen - 1);
-  if (ret != -1)
+  if (ret != -1 && buf[0] != '[')
     return 0;
-  if (errno == ENAMETOOLONG)
+  if (ret == -1 && errno == ENAMETOOLONG)
     {
       __set_errno (ERANGE);
       return ERANGE;