diff options
author | Joseph Myers <joseph@codesourcery.com> | 2015-06-03 13:58:58 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2015-06-03 13:58:58 +0000 |
commit | f014e87eff1c9935a8bd9f7b7ab66ff5ef562ee9 (patch) | |
tree | 845ee9a11c80d7f9683c2c88eb107ac88ed5f9f2 | |
parent | aca6ea6586fb2368e6659388f55ba3d374913a86 (diff) | |
download | glibc-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-- | ChangeLog | 16 | ||||
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | conform/Makefile | 11 | ||||
-rw-r--r-- | posix/fnmatch.c | 4 |
4 files changed, 19 insertions, 14 deletions
@@ -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. @@ -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 |