From 9744496f8a479c23174cc330e4d422f130804c04 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Mon, 24 Nov 2014 15:59:15 +0000 Subject: [PATCH] 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. --- ChangeLog | 9 +++++++++ NEWS | 2 +- conform/Makefile | 3 --- stdio-common/perror.c | 2 +- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4e557a7f224..ec318746e9f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2014-11-24 Joseph Myers + + [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 * string/strncpy.c (strncpy): Improve performance by using memset. diff --git a/NEWS b/NEWS index ad170c49c55..995c66eebeb 100644 --- a/NEWS +++ b/NEWS @@ -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 cf54722b8e0..4a498e46f15 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 4b470156a65..7de83e4d323 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) { -- 2.39.2