aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2015-06-03 13:58:58 +0000
committerJoseph Myers <joseph@codesourcery.com>2015-06-03 13:58:58 +0000
commitf014e87eff1c9935a8bd9f7b7ab66ff5ef562ee9 (patch)
tree845ee9a11c80d7f9683c2c88eb107ac88ed5f9f2
parentaca6ea6586fb2368e6659388f55ba3d374913a86 (diff)
downloadglibc-f014e87eff1c9935a8bd9f7b7ab66ff5ef562ee9.zip
glibc-f014e87eff1c9935a8bd9f7b7ab66ff5ef562ee9.tar.gz
glibc-f014e87eff1c9935a8bd9f7b7ab66ff5ef562ee9.tar.bz2
Fix fnmatch strnlen namespace (bug 18470).
fnmatch brings in references to strnlen, which isn't in all the standards that contain fnmatch (not added until the 2008 edition of POSIX), resulting in linknamespace test failures. (This is contrary to glibc conventions, rather than a standards conformance issue, because of the str* reservation.) This patch fixes this in the usual way, using __strnlen instead of strnlen. Tested for x86_64 and x86 (testsuite, and that installed stripped shared libraries are unchanged by the patch). [BZ #18470] * posix/fnmatch.c (fnmatch) [_LIBC]: Call __strnlen instead of strnlen. * conform/Makefile (test-xfail-XPG3/fnmatch.h/linknamespace): Remove variable. (test-xfail-XPG4/fnmatch.h/linknamespace): Likewise. (test-xfail-POSIX/fnmatch.h/linknamespace): Likewise. (test-xfail-POSIX/glob.h/linknamespace): Likewise. (test-xfail-POSIX/wordexp.h/linknamespace): Likewise. (test-xfail-UNIX98/fnmatch.h/linknamespace): Likewise. (test-xfail-UNIX98/glob.h/linknamespace): Likewise. (test-xfail-UNIX98/wordexp.h/linknamespace): Likewise. (test-xfail-XOPEN2K/fnmatch.h/linknamespace): Likewise. (test-xfail-XOPEN2K/glob.h/linknamespace): Likewise. (test-xfail-XOPEN2K/wordexp.h/linknamespace): Likewise.
-rw-r--r--ChangeLog16
-rw-r--r--NEWS2
-rw-r--r--conform/Makefile11
-rw-r--r--posix/fnmatch.c4
4 files changed, 19 insertions, 14 deletions
diff --git a/ChangeLog b/ChangeLog
index 0a3cc89..c1a9a7e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,21 @@
2015-06-03 Joseph Myers <joseph@codesourcery.com>
+ [BZ #18470]
+ * posix/fnmatch.c (fnmatch) [_LIBC]: Call __strnlen instead of
+ strnlen.
+ * conform/Makefile (test-xfail-XPG3/fnmatch.h/linknamespace):
+ Remove variable.
+ (test-xfail-XPG4/fnmatch.h/linknamespace): Likewise.
+ (test-xfail-POSIX/fnmatch.h/linknamespace): Likewise.
+ (test-xfail-POSIX/glob.h/linknamespace): Likewise.
+ (test-xfail-POSIX/wordexp.h/linknamespace): Likewise.
+ (test-xfail-UNIX98/fnmatch.h/linknamespace): Likewise.
+ (test-xfail-UNIX98/glob.h/linknamespace): Likewise.
+ (test-xfail-UNIX98/wordexp.h/linknamespace): Likewise.
+ (test-xfail-XOPEN2K/fnmatch.h/linknamespace): Likewise.
+ (test-xfail-XOPEN2K/glob.h/linknamespace): Likewise.
+ (test-xfail-XOPEN2K/wordexp.h/linknamespace): Likewise.
+
[BZ #18468]
* wcsmbs/wmemchr.c (wmemchr): Rename to __wmemchr and define as
weak alias of __wmemchr. Use libc_hidden_weak.
diff --git a/NEWS b/NEWS
index 1701e4a..43c2cc7 100644
--- a/NEWS
+++ b/NEWS
@@ -19,7 +19,7 @@ Version 2.22
18047, 18049, 18068, 18080, 18093, 18100, 18104, 18110, 18111, 18116,
18125, 18128, 18138, 18185, 18196, 18197, 18206, 18210, 18211, 18217,
18220, 18221, 18234, 18244, 18247, 18287, 18319, 18333, 18346, 18397,
- 18409, 18410, 18412, 18418, 18422, 18434, 18444, 18468, 18469.
+ 18409, 18410, 18412, 18418, 18422, 18434, 18444, 18468, 18469, 18470.
* Cache information can be queried via sysconf() function on s390 e.g. with
_SC_LEVEL1_ICACHE_SIZE as argument.
diff --git a/conform/Makefile b/conform/Makefile
index 27732f5..de009af 100644
--- a/conform/Makefile
+++ b/conform/Makefile
@@ -345,14 +345,12 @@ test-xfail-XOPEN2K/ndbm.h/linknamespace = yes
test-xfail-XOPEN2K8/ndbm.h/linknamespace = yes
# Unsorted expected failures.
-test-xfail-XPG3/fnmatch.h/linknamespace = yes
test-xfail-XPG3/glob.h/linknamespace = yes
test-xfail-XPG3/regex.h/linknamespace = yes
test-xfail-XPG3/stdio.h/linknamespace = yes
test-xfail-XPG3/unistd.h/linknamespace = yes
test-xfail-XPG3/wordexp.h/linknamespace = yes
test-xfail-XPG4/fmtmsg.h/linknamespace = yes
-test-xfail-XPG4/fnmatch.h/linknamespace = yes
test-xfail-XPG4/glob.h/linknamespace = yes
test-xfail-XPG4/netdb.h/linknamespace = yes
test-xfail-XPG4/regex.h/linknamespace = yes
@@ -362,16 +360,11 @@ test-xfail-XPG4/syslog.h/linknamespace = yes
test-xfail-XPG4/unistd.h/linknamespace = yes
test-xfail-XPG4/wordexp.h/linknamespace = yes
test-xfail-POSIX/aio.h/linknamespace = yes
-test-xfail-POSIX/fnmatch.h/linknamespace = yes
-test-xfail-POSIX/glob.h/linknamespace = yes
test-xfail-POSIX/mqueue.h/linknamespace = yes
test-xfail-POSIX/regex.h/linknamespace = yes
test-xfail-POSIX/semaphore.h/linknamespace = yes
test-xfail-POSIX/unistd.h/linknamespace = yes
-test-xfail-POSIX/wordexp.h/linknamespace = yes
test-xfail-UNIX98/fmtmsg.h/linknamespace = yes
-test-xfail-UNIX98/fnmatch.h/linknamespace = yes
-test-xfail-UNIX98/glob.h/linknamespace = yes
test-xfail-UNIX98/mqueue.h/linknamespace = yes
test-xfail-UNIX98/netdb.h/linknamespace = yes
test-xfail-UNIX98/stdio.h/linknamespace = yes
@@ -379,10 +372,7 @@ test-xfail-UNIX98/stdlib.h/linknamespace = yes
test-xfail-UNIX98/syslog.h/linknamespace = yes
test-xfail-UNIX98/unistd.h/linknamespace = yes
test-xfail-UNIX98/wchar.h/linknamespace = yes
-test-xfail-UNIX98/wordexp.h/linknamespace = yes
test-xfail-XOPEN2K/fmtmsg.h/linknamespace = yes
-test-xfail-XOPEN2K/fnmatch.h/linknamespace = yes
-test-xfail-XOPEN2K/glob.h/linknamespace = yes
test-xfail-XOPEN2K/netdb.h/linknamespace = yes
test-xfail-XOPEN2K/signal.h/linknamespace = yes
test-xfail-XOPEN2K/stdlib.h/linknamespace = yes
@@ -390,7 +380,6 @@ test-xfail-XOPEN2K/sys/wait.h/linknamespace = yes
test-xfail-XOPEN2K/syslog.h/linknamespace = yes
test-xfail-XOPEN2K/ucontext.h/linknamespace = yes
test-xfail-XOPEN2K/unistd.h/linknamespace = yes
-test-xfail-XOPEN2K/wordexp.h/linknamespace = yes
test-xfail-POSIX2008/grp.h/linknamespace = yes
test-xfail-POSIX2008/netdb.h/linknamespace = yes
test-xfail-POSIX2008/semaphore.h/linknamespace = yes
diff --git a/posix/fnmatch.c b/posix/fnmatch.c
index 760ccea..fd85efa 100644
--- a/posix/fnmatch.c
+++ b/posix/fnmatch.c
@@ -348,7 +348,7 @@ fnmatch (pattern, string, flags)
memset (&ps, '\0', sizeof (ps));
p = pattern;
#ifdef _LIBC
- n = strnlen (pattern, 1024);
+ n = __strnlen (pattern, 1024);
#else
n = strlen (pattern);
#endif
@@ -392,7 +392,7 @@ fnmatch (pattern, string, flags)
assert (mbsinit (&ps));
#ifdef _LIBC
- n = strnlen (string, 1024);
+ n = __strnlen (string, 1024);
#else
n = strlen (string);
#endif