aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2014-12-22 12:46:27 +0000
committerJoseph Myers <joseph@codesourcery.com>2014-12-22 12:46:27 +0000
commit935ab8179287f3b7aefdbe3829110d369be1a5c8 (patch)
tree1871bd55723cb03af4a777e9a88ec9247ddee6f4
parentcc8623f196cd5d1c82573b34cb3a6a56f712790a (diff)
downloadglibc-935ab8179287f3b7aefdbe3829110d369be1a5c8.tar
glibc-935ab8179287f3b7aefdbe3829110d369be1a5c8.tar.gz
glibc-935ab8179287f3b7aefdbe3829110d369be1a5c8.tar.bz2
glibc-935ab8179287f3b7aefdbe3829110d369be1a5c8.zip
Fix resolver bind, getsockname namespace (bug 17733).
On Linux architectures using socketcall, the resolver ends up bringing in strong symbols for bind and getsockname, which are not in POSIX.1-1996. This causes linknamespace test failures: FAIL: conform/POSIX/pthread.h/linknamespace FAIL: conform/POSIX/sched.h/linknamespace FAIL: conform/POSIX/time.h/linknamespace These functions are defined as strong symbols with __bind and __getsockname as weak aliases. This patch switches this to the other way round by removing the NO_WEAK_ALIAS definitions and so letting the default case in socket.S act; I see no reason for the existing arrangements. Tested for x86 (testsuite, and that disassembly of installed shared libraries is unchanged by the patch). [BZ #17733] * sysdeps/unix/sysv/linux/bind.S (NO_WEAK_ALIAS): Do not define. (__bind): Do not define as weak alias. * sysdeps/unix/sysv/linux/getsockname.S (NO_WEAK_ALIAS): Do not define. (__getsockname): Do not define as weak alias.
-rw-r--r--ChangeLog9
-rw-r--r--NEWS2
-rw-r--r--sysdeps/unix/sysv/linux/bind.S2
-rw-r--r--sysdeps/unix/sysv/linux/getsockname.S2
4 files changed, 10 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 99c248c575..7279fcc216 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2014-12-22 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #17733]
+ * sysdeps/unix/sysv/linux/bind.S (NO_WEAK_ALIAS): Do not define.
+ (__bind): Do not define as weak alias.
+ * sysdeps/unix/sysv/linux/getsockname.S (NO_WEAK_ALIAS): Do not
+ define.
+ (__getsockname): Do not define as weak alias.
+
2014-12-22 Will Newton <will.newton@linaro.org>
* manual/install.texi: Document that we require bison 2.7
diff --git a/NEWS b/NEWS
index 6b34b13457..a40deb0341 100644
--- a/NEWS
+++ b/NEWS
@@ -15,7 +15,7 @@ Version 2.21
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, 17719,
- 17722, 17725.
+ 17722, 17725, 17733.
* 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/sysdeps/unix/sysv/linux/bind.S b/sysdeps/unix/sysv/linux/bind.S
index 7719ad0be8..61fb5ebff8 100644
--- a/sysdeps/unix/sysv/linux/bind.S
+++ b/sysdeps/unix/sysv/linux/bind.S
@@ -1,5 +1,3 @@
#define socket bind
#define NARGS 3
-#define NO_WEAK_ALIAS 1
#include <socket.S>
-weak_alias (bind, __bind)
diff --git a/sysdeps/unix/sysv/linux/getsockname.S b/sysdeps/unix/sysv/linux/getsockname.S
index 9ea371ff6e..c138be9da5 100644
--- a/sysdeps/unix/sysv/linux/getsockname.S
+++ b/sysdeps/unix/sysv/linux/getsockname.S
@@ -1,5 +1,3 @@
#define socket getsockname
#define NARGS 3
-#define NO_WEAK_ALIAS 1
#include <socket.S>
-weak_alias (getsockname, __getsockname)