Skip to content

Commit

Permalink
Fix x86_64 memrchr namespace (bug 17719).
Browse files Browse the repository at this point in the history
On x86_64, memrchr (not a standard function) is defined as a strong
symbol, instead of a weak alias of __memrchr as on other
architectures.  This results in linknamespace test failures from the
use of __memrchr from dirname.  (Not a conformance issue because of
the mem* reservation, but contrary to glibc conventions.)  This patch
makes x86_64 follow other architectures by defining memrchr as a weak
alias.

Tested for x86_64 (testsuite, and that disassembly of installed shared
libraries is unchanged by the patch).

	[BZ #17719]
	* sysdeps/x86_64/memrchr.S (memrchr): Rename to __memrchr and
	define as weak alias of __memrchr.
	(__memrchr): Do not define as strong alias of memrchr.
	* conform/Makefile (test-xfail-XPG4/libgen.h/linknamespace):
	Remove variable.
	(test-xfail-UNIX98/libgen.h/linknamespace): Likewise.
	(test-xfail-XOPEN2K/libgen.h/linknamespace): Likewise.
	(test-xfail-XOPEN2K8/libgen.h/linknamespace): Likewise.
  • Loading branch information
Joseph Myers committed Dec 16, 2014
1 parent 9a44d53 commit 380292b
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 8 deletions.
10 changes: 10 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
2014-12-16 Joseph Myers <joseph@codesourcery.com>

[BZ #17719]
* sysdeps/x86_64/memrchr.S (memrchr): Rename to __memrchr and
define as weak alias of __memrchr.
(__memrchr): Do not define as strong alias of memrchr.
* conform/Makefile (test-xfail-XPG4/libgen.h/linknamespace):
Remove variable.
(test-xfail-UNIX98/libgen.h/linknamespace): Likewise.
(test-xfail-XOPEN2K/libgen.h/linknamespace): Likewise.
(test-xfail-XOPEN2K8/libgen.h/linknamespace): Likewise.

[BZ #17717]
* inet/if_index.c (if_nametoindex): Rename to __if_nametoindex and
define as weak alias of __if_nametoindex. Use libc_hidden_weak.
Expand Down
2 changes: 1 addition & 1 deletion NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Version 2.21
17363, 17370, 17371, 17411, 17460, 17475, 17485, 17501, 17506, 17508,
17522, 17555, 17570, 17571, 17572, 17573, 17574, 17581, 17582, 17583,
17584, 17585, 17589, 17594, 17601, 17608, 17616, 17625, 17630, 17633,
17634, 17647, 17653, 17657, 17664, 17665, 17668, 17682, 17717.
17634, 17647, 17653, 17657, 17664, 17665, 17668, 17682, 17717, 17719.

* CVE-2104-7817 The wordexp function could ignore the WRDE_NOCMD flag
under certain input conditions resulting in the execution of a shell for
Expand Down
4 changes: 0 additions & 4 deletions conform/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -359,7 +359,6 @@ test-xfail-XPG4/ctype.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/libgen.h/linknamespace = yes
test-xfail-XPG4/netdb.h/linknamespace = yes
test-xfail-XPG4/regex.h/linknamespace = yes
test-xfail-XPG4/search.h/linknamespace = yes
Expand All @@ -383,7 +382,6 @@ test-xfail-UNIX98/ctype.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/libgen.h/linknamespace = yes
test-xfail-UNIX98/mqueue.h/linknamespace = yes
test-xfail-UNIX98/netdb.h/linknamespace = yes
test-xfail-UNIX98/regex.h/linknamespace = yes
Expand All @@ -398,7 +396,6 @@ test-xfail-XOPEN2K/fcntl.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/libgen.h/linknamespace = yes
test-xfail-XOPEN2K/mqueue.h/linknamespace = yes
test-xfail-XOPEN2K/netdb.h/linknamespace = yes
test-xfail-XOPEN2K/regex.h/linknamespace = yes
Expand All @@ -425,7 +422,6 @@ test-xfail-XOPEN2K8/dirent.h/linknamespace = yes
test-xfail-XOPEN2K8/fcntl.h/linknamespace = yes
test-xfail-XOPEN2K8/fmtmsg.h/linknamespace = yes
test-xfail-XOPEN2K8/grp.h/linknamespace = yes
test-xfail-XOPEN2K8/libgen.h/linknamespace = yes
test-xfail-XOPEN2K8/mqueue.h/linknamespace = yes
test-xfail-XOPEN2K8/netdb.h/linknamespace = yes
test-xfail-XOPEN2K8/pwd.h/linknamespace = yes
Expand Down
6 changes: 3 additions & 3 deletions sysdeps/x86_64/memrchr.S
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
#include <sysdep.h>

.text
ENTRY (memrchr)
ENTRY (__memrchr)
movd %rsi, %xmm1

sub $16, %rdx
Expand Down Expand Up @@ -378,5 +378,5 @@ L(length_less16_part2_return):
lea 16(%rax, %rdi), %rax
ret

END (memrchr)
strong_alias (memrchr, __memrchr)
END (__memrchr)
weak_alias (__memrchr, memrchr)

0 comments on commit 380292b

Please sign in to comment.