summaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/ttyname_r.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2007-01-12 14:37:24 +0000
committerJakub Jelinek <jakub@redhat.com>2007-01-12 14:37:24 +0000
commit00e3dec8025c93ccde8ed810657e7f2115ddc8cb (patch)
tree30b8f6bdb08d364b986ae3ec3ec7664c520f0ad9 /sysdeps/unix/sysv/linux/ttyname_r.c
parentd6220e9ee38c1c9285221b023346201ec5f511b3 (diff)
downloadglibc-00e3dec8025c93ccde8ed810657e7f2115ddc8cb.tar
glibc-00e3dec8025c93ccde8ed810657e7f2115ddc8cb.tar.gz
glibc-00e3dec8025c93ccde8ed810657e7f2115ddc8cb.tar.bz2
glibc-00e3dec8025c93ccde8ed810657e7f2115ddc8cb.zip
* nis/nis_table.c (nis_list): If __follow_path fails in the new
code, make sure the nis_freeresult call doesn't crash and that the result is reported correctly. * nis/nis_table.c (nis_list): Handle FOLLOW_PATH | ALL_RESULTS when callback is NULL. * nis/Versions (libnss_nisplus): Add _nss_nisplus_initgroups_dyn@@GLIBC_PRIVATE. * nis/Makefile (libnss_nisplus-routines): Add nisplus-initgroups. * nis/nss_nisplus/nisplus-grp.c (tablename_val, tablename_len, _nss_create_tablename): Rename to... (grp_tablename_val, grp_tablename_len, _nss_grp_create_tablename): ... these. No longer static. (internal_setgrent): Adjust users. (_nss_nisplus_getgrnam_r, _nss_nisplus_getgrgid_r): Likewise. Don't use locking around _nss_grp_create_tablename call. * nis/nss_nisplus/nisplus-initgroups.c: New file.
Diffstat (limited to 'sysdeps/unix/sysv/linux/ttyname_r.c')
-rw-r--r--sysdeps/unix/sysv/linux/ttyname_r.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/sysdeps/unix/sysv/linux/ttyname_r.c b/sysdeps/unix/sysv/linux/ttyname_r.c
index cef8624dc6..bd415f167b 100644
--- a/sysdeps/unix/sysv/linux/ttyname_r.c
+++ b/sysdeps/unix/sysv/linux/ttyname_r.c
@@ -22,7 +22,6 @@
#include <dirent.h>
#include <sys/types.h>
#include <sys/stat.h>
-#include <termios.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
@@ -116,11 +115,11 @@ __ttyname_r (int fd, char *buf, size_t buflen)
return ERANGE;
}
- /* isatty check, tcgetattr is used because it sets the correct
- errno (EBADF resp. ENOTTY) on error. */
- struct termios term;
- if (__builtin_expect (__tcgetattr (fd, &term) < 0, 0))
- return errno;
+ if (__builtin_expect (!__isatty (fd), 0))
+ {
+ __set_errno (ENOTTY);
+ return ENOTTY;
+ }
/* We try using the /proc filesystem. */
*_fitoa_word (fd, __stpcpy (procname, "/proc/self/fd/"), 10, 0) = '\0';