diff options
author | Joseph Myers <joseph@codesourcery.com> | 2014-11-24 15:59:15 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2014-11-24 15:59:15 +0000 |
commit | 9744496f8a479c23174cc330e4d422f130804c04 (patch) | |
tree | a2cdc6907445d1708b6f5c1ec71be968ed76d048 | |
parent | 6423d4754c3769129510b9b44b6b8cfe8192ec67 (diff) | |
download | glibc-9744496f8a479c23174cc330e4d422f130804c04.tar glibc-9744496f8a479c23174cc330e4d422f130804c04.tar.gz glibc-9744496f8a479c23174cc330e4d422f130804c04.tar.bz2 glibc-9744496f8a479c23174cc330e4d422f130804c04.zip |
Fix perror fileno namespace (bug 17633).
perror, an ISO C function, uses fileno, which is not an ISO C
function. This patch makes it use __fileno instead. (The nearby call
to fdopen is not a problem because that's #defined to _IO_new_fdopen.)
Tested for x86_64 (testsuite, and that installed stripped shared
libraries are unchanged by this patch).
[BZ #17633]
* stdio-common/perror.c (perror): Call __fileno instead of fileno.
* conform/Makefile (test-xfail-ISO/stdio.h/linknamespace): Remove
variable.
(test-xfail-ISO99/stdio.h/linknamespace): Likewise.
(test-xfail-ISO11/stdio.h/linknamespace): Likewise.
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | conform/Makefile | 3 | ||||
-rw-r--r-- | stdio-common/perror.c | 2 |
4 files changed, 11 insertions, 5 deletions
@@ -1,3 +1,12 @@ +2014-11-24 Joseph Myers <joseph@codesourcery.com> + + [BZ #17633] + * stdio-common/perror.c (perror): Call __fileno instead of fileno. + * conform/Makefile (test-xfail-ISO/stdio.h/linknamespace): Remove + variable. + (test-xfail-ISO99/stdio.h/linknamespace): Likewise. + (test-xfail-ISO11/stdio.h/linknamespace): Likewise. + 2014-11-24 Wilco Dijkstra <wdijkstr@arm.com> * string/strncpy.c (strncpy): Improve performance by using memset. @@ -12,7 +12,7 @@ Version 2.21 6652, 12926, 14132, 14138, 14171, 14498, 15215, 15884, 16469, 17266, 17344, 17363, 17370, 17371, 17411, 17460, 17475, 17485, 17501, 17506, 17508, 17522, 17555, 17570, 17571, 17572, 17573, 17574, 17582, 17583, - 17584, 17585, 17589, 17594, 17616, 17625. + 17584, 17585, 17589, 17594, 17616, 17625, 17633. * CVE-2104-7817 The wordexp function could ignore the WRDE_NOCMD flag under certain input conditions resulting in the execution of a shell for diff --git a/conform/Makefile b/conform/Makefile index cf54722b8e..4a498e46f1 100644 --- a/conform/Makefile +++ b/conform/Makefile @@ -325,12 +325,9 @@ test-xfail-XOPEN2K/ndbm.h/linknamespace = yes test-xfail-XOPEN2K8/ndbm.h/linknamespace = yes # Unsorted expected failures. -test-xfail-ISO/stdio.h/linknamespace = yes test-xfail-ISO/time.h/linknamespace = yes test-xfail-ISO99/ctype.h/linknamespace = yes -test-xfail-ISO99/stdio.h/linknamespace = yes test-xfail-ISO11/ctype.h/linknamespace = yes -test-xfail-ISO11/stdio.h/linknamespace = yes test-xfail-XPG3/ctype.h/linknamespace = yes test-xfail-XPG3/fnmatch.h/linknamespace = yes test-xfail-XPG3/glob.h/linknamespace = yes diff --git a/stdio-common/perror.c b/stdio-common/perror.c index 4b470156a6..7de83e4d32 100644 --- a/stdio-common/perror.c +++ b/stdio-common/perror.c @@ -56,7 +56,7 @@ perror (const char *s) oriented yet? In this case we'll create a new stream which is using the same underlying file descriptor. */ if (__builtin_expect (_IO_fwide (stderr, 0) != 0, 1) - || (fd = fileno (stderr)) == -1 + || (fd = __fileno (stderr)) == -1 || (fd = __dup (fd)) == -1 || (fp = fdopen (fd, "w+")) == NULL) { |