mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 12:30:06 +00:00
Don't make ttyname* fail if proc filesystem is not available
The ttyname and ttyname_r functions on Linux now fall back to searching for the tty file descriptor in /dev/pts or /dev if /proc is not available. This allows creation of chroots without the procfs mounted on /proc. Fixes BZ #14516.
This commit is contained in:
parent
ad845c0be9
commit
050af9c4e8
@ -1,3 +1,10 @@
|
||||
2012-08-29 Siddhesh Poyarekar <siddhesh@redhat.com>
|
||||
|
||||
[BZ #14516]
|
||||
* sysdeps/unix/sysv/linux/ttyname.c (ttyname): Don't return
|
||||
failure if reading from procfs failed.
|
||||
* sysdeps/unix/sysv/linux/ttyname_r.c (ttyname_r): Likewise.
|
||||
|
||||
2012-08-27 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/kernel-features.h
|
||||
|
6
NEWS
6
NEWS
@ -12,7 +12,7 @@ Version 2.17
|
||||
3479, 5400, 6778, 6808, 9685, 11607, 13717, 13696, 13939, 14042, 14090,
|
||||
14166, 14150, 14151, 14154, 14157, 14166, 14173, 14195, 14252, 14283,
|
||||
14298, 14303, 14307, 14328, 14331, 14336, 14337, 14347, 14349, 14459,
|
||||
14505, 14519
|
||||
14505, 14516, 14519
|
||||
|
||||
* Support for STT_GNU_IFUNC symbols added for s390 and s390x.
|
||||
Optimized versions of memcpy, memset, and memcmp added for System z10 and
|
||||
@ -40,6 +40,10 @@ Version 2.17
|
||||
New configure option --disable-build-nscd avoids building nscd itself;
|
||||
this is the default if --disable-nscd is used.
|
||||
|
||||
* The ttyname and ttyname_r functions on Linux now fall back to searching for
|
||||
the tty file descriptor in /dev/pts or /dev if /proc is not available. This
|
||||
allows creation of chroots without the procfs mounted on /proc.
|
||||
|
||||
|
||||
Version 2.16
|
||||
|
||||
|
@ -148,12 +148,6 @@ ttyname (int fd)
|
||||
}
|
||||
|
||||
ssize_t len = __readlink (procname, ttyname_buf, buflen);
|
||||
if (__builtin_expect (len == -1 && errno == ENOENT, 0))
|
||||
{
|
||||
__set_errno (EBADF);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (__builtin_expect (len != -1, 1))
|
||||
{
|
||||
if ((size_t) len >= buflen)
|
||||
|
@ -128,12 +128,6 @@ __ttyname_r (int fd, char *buf, size_t buflen)
|
||||
*_fitoa_word (fd, __stpcpy (procname, "/proc/self/fd/"), 10, 0) = '\0';
|
||||
|
||||
ssize_t ret = __readlink (procname, buf, buflen - 1);
|
||||
if (__builtin_expect (ret == -1 && errno == ENOENT, 0))
|
||||
{
|
||||
__set_errno (EBADF);
|
||||
return EBADF;
|
||||
}
|
||||
|
||||
if (__builtin_expect (ret == -1 && errno == ENAMETOOLONG, 0))
|
||||
{
|
||||
__set_errno (ERANGE);
|
||||
|
Loading…
Reference in New Issue
Block a user