aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/unix/sysv/linux/ttyname.c4
-rw-r--r--sysdeps/unix/sysv/linux/ttyname_r.c4
2 files changed, 5 insertions, 3 deletions
diff --git a/sysdeps/unix/sysv/linux/ttyname.c b/sysdeps/unix/sysv/linux/ttyname.c
index 40b006a8cd..35eb4b4696 100644
--- a/sysdeps/unix/sysv/linux/ttyname.c
+++ b/sysdeps/unix/sysv/linux/ttyname.c
@@ -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)
diff --git a/sysdeps/unix/sysv/linux/ttyname_r.c b/sysdeps/unix/sysv/linux/ttyname_r.c
index 8306cf56c0..449942a96d 100644
--- a/sysdeps/unix/sysv/linux/ttyname_r.c
+++ b/sysdeps/unix/sysv/linux/ttyname_r.c
@@ -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;