diff options
author | Joseph Myers <joseph@codesourcery.com> | 2014-12-17 18:09:11 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2014-12-17 18:09:11 +0000 |
commit | 8ac5a76a99e51a91eac9cecbe941fc05ddf11e03 (patch) | |
tree | 76a65f8b81308ff6f6c84f5b6b3628673b2178cf /include/arpa/inet.h | |
parent | 66ce3cb12f74d3dbd4018ce6498a36348acf7e83 (diff) | |
download | glibc-8ac5a76a99e51a91eac9cecbe941fc05ddf11e03.zip glibc-8ac5a76a99e51a91eac9cecbe941fc05ddf11e03.tar.gz glibc-8ac5a76a99e51a91eac9cecbe941fc05ddf11e03.tar.bz2 |
Fix resolver inet_* namespace (bug 17722).
Parts of the resolver brought in by pthreads (at least) use inet_*
functions that aren't in the 1995/6 edition of POSIX that introduced
pthreads (or in one case, use __inet_aton which is then defined in the
same file as non-weak inet_addr). This patch fixes this by making the
affected functions into weak alias for __inet_* and using those names
in the problematic resolver code.
Tested for x86_64 (testsuite, and that disassembly of installed shared
libraries is unchanged by the patch).
[BZ #17722]
* inet/inet_mkadr.c (inet_makeaddr): Rename to __inet_makeaddr and
define as weak alias of __inet_makeaddr.
* resolv/inet_addr.c (inet_addr): Rename to __inet_addr and define
as weak alias of __inet_addr.
* resolv/inet_pton.c (inet_pton): Rename to __inet_pton and define
as weak alias of __inet_pton. Use libc_hidden_weak.
* include/arpa/inet.h (__inet_pton): Declare. Use
libc_hidden_proto.
(inet_makeaddr): Don't use libc_hidden_proto.
(__inet_makeaddr): Declare. Use libc_hidden_proto.
* resolv/res_init.c (__res_vinit): Use __inet_pton instead of
inet_pton. Use __inet_makeaddr instead of inet_makeaddr.
* conform/Makefile (test-xfail-POSIX/pthread.h/linknamespace):
Remove variable.
(test-xfail-POSIX/sched.h/linknamespace): Likewise.
(test-xfail-POSIX/time.h/linknamespace): Likewise.
Diffstat (limited to 'include/arpa/inet.h')
-rw-r--r-- | include/arpa/inet.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/include/arpa/inet.h b/include/arpa/inet.h index 63ece70..c3f28f2 100644 --- a/include/arpa/inet.h +++ b/include/arpa/inet.h @@ -7,6 +7,9 @@ libc_hidden_proto (__inet_aton) libc_hidden_proto (inet_aton) libc_hidden_proto (inet_ntop) libc_hidden_proto (inet_pton) -libc_hidden_proto (inet_makeaddr) +extern __typeof (inet_pton) __inet_pton; +libc_hidden_proto (__inet_pton) +extern __typeof (inet_makeaddr) __inet_makeaddr; +libc_hidden_proto (__inet_makeaddr) libc_hidden_proto (inet_netof) #endif |