summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2014-11-24 15:59:15 +0000
committerJoseph Myers <joseph@codesourcery.com>2014-11-24 15:59:15 +0000
commit9744496f8a479c23174cc330e4d422f130804c04 (patch)
treea2cdc6907445d1708b6f5c1ec71be968ed76d048
parent6423d4754c3769129510b9b44b6b8cfe8192ec67 (diff)
downloadglibc-9744496f8a479c23174cc330e4d422f130804c04.tar.gz
glibc-9744496f8a479c23174cc330e4d422f130804c04.tar.xz
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--ChangeLog9
-rw-r--r--NEWS2
-rw-r--r--conform/Makefile3
-rw-r--r--stdio-common/perror.c2
4 files changed, 11 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 4e557a7f22..ec318746e9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
diff --git a/NEWS b/NEWS
index ad170c49c5..995c66eebe 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 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)
     {