about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog20
-rw-r--r--NEWS3
-rw-r--r--conform/Makefile3
-rw-r--r--include/arpa/inet.h5
-rw-r--r--inet/inet_mkadr.c5
-rw-r--r--resolv/inet_addr.c3
-rw-r--r--resolv/inet_pton.c6
-rw-r--r--resolv/res_init.c4
8 files changed, 37 insertions, 12 deletions
diff --git a/ChangeLog b/ChangeLog
index a7cb40e3b6..2fc8cde873 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,23 @@
+2014-12-17  Joseph Myers  <joseph@codesourcery.com>
+
+	[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.
+
 2014-12-17  Steve Ellcey  <sellcey@imgtec.com>
 
 	* inet/getnetgrent_r.c: Move while loop to be inside if statement.
diff --git a/NEWS b/NEWS
index c46f51ade3..d4ccd37dfa 100644
--- a/NEWS
+++ b/NEWS
@@ -14,7 +14,8 @@ 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, 17719.
+  17634, 17647, 17653, 17657, 17664, 17665, 17668, 17682, 17717, 17719,
+  17722.
 
 * 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/conform/Makefile b/conform/Makefile
index 45a17fb525..5e6ac0947e 100644
--- a/conform/Makefile
+++ b/conform/Makefile
@@ -371,11 +371,8 @@ 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/pthread.h/linknamespace = yes
 test-xfail-POSIX/regex.h/linknamespace = yes
-test-xfail-POSIX/sched.h/linknamespace = yes
 test-xfail-POSIX/semaphore.h/linknamespace = yes
-test-xfail-POSIX/time.h/linknamespace = yes
 test-xfail-POSIX/unistd.h/linknamespace = yes
 test-xfail-POSIX/wordexp.h/linknamespace = yes
 test-xfail-UNIX98/ctype.h/linknamespace = yes
diff --git a/include/arpa/inet.h b/include/arpa/inet.h
index 63ece7029a..c3f28f2baa 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
diff --git a/inet/inet_mkadr.c b/inet/inet_mkadr.c
index d8d92da768..580a9cd956 100644
--- a/inet/inet_mkadr.c
+++ b/inet/inet_mkadr.c
@@ -40,7 +40,7 @@ static char sccsid[] = "@(#)inet_makeaddr.c	8.1 (Berkeley) 6/4/93";
  * building addresses stored in the ifnet structure.
  */
 struct in_addr
-inet_makeaddr(net, host)
+__inet_makeaddr(net, host)
 	in_addr_t net, host;
 {
 	struct in_addr in;
@@ -56,4 +56,5 @@ inet_makeaddr(net, host)
 	in.s_addr = htonl(in.s_addr);
 	return in;
 }
-libc_hidden_def (inet_makeaddr)
+libc_hidden_def (__inet_makeaddr)
+weak_alias (__inet_makeaddr, inet_makeaddr)
diff --git a/resolv/inet_addr.c b/resolv/inet_addr.c
index 144b87a74c..ee42093754 100644
--- a/resolv/inet_addr.c
+++ b/resolv/inet_addr.c
@@ -90,13 +90,14 @@ static const char rcsid[] = "$BINDId: inet_addr.c,v 8.11 1999/10/13 16:39:25 vix
  * The value returned is in network order.
  */
 in_addr_t
-inet_addr(const char *cp) {
+__inet_addr(const char *cp) {
 	struct in_addr val;
 
 	if (__inet_aton(cp, &val))
 		return (val.s_addr);
 	return (INADDR_NONE);
 }
+weak_alias (__inet_addr, inet_addr)
 
 /*
  * Check whether "cp" is a valid ascii representation
diff --git a/resolv/inet_pton.c b/resolv/inet_pton.c
index c507013e4e..3d8819512e 100644
--- a/resolv/inet_pton.c
+++ b/resolv/inet_pton.c
@@ -49,7 +49,7 @@ static int inet_pton6 (const char *src, u_char *dst) internal_function;
  *	Paul Vixie, 1996.
  */
 int
-inet_pton(af, src, dst)
+__inet_pton(af, src, dst)
 	int af;
 	const char *src;
 	void *dst;
@@ -65,7 +65,9 @@ inet_pton(af, src, dst)
 	}
 	/* NOTREACHED */
 }
-libc_hidden_def (inet_pton)
+libc_hidden_def (__inet_pton)
+weak_alias (__inet_pton, inet_pton)
+libc_hidden_weak (inet_pton)
 
 /* int
  * inet_pton4(src, dst)
diff --git a/resolv/res_init.c b/resolv/res_init.c
index 6eddcdd0b2..d492a08aee 100644
--- a/resolv/res_init.c
+++ b/resolv/res_init.c
@@ -324,7 +324,7 @@ __res_vinit(res_state statp, int preinit) {
 			if ((el = strchr(cp, SCOPE_DELIMITER)) != NULL)
 			    *el = '\0';
 			if ((*cp != '\0') &&
-			    (inet_pton(AF_INET6, cp, &a6) > 0)) {
+			    (__inet_pton(AF_INET6, cp, &a6) > 0)) {
 			    struct sockaddr_in6 *sa6;
 
 			    sa6 = malloc(sizeof(*sa6));
@@ -428,7 +428,7 @@ __res_vinit(res_state statp, int preinit) {
 	    (void) fclose(fp);
 	}
 	if (__builtin_expect(statp->nscount == 0, 0)) {
-	    statp->nsaddr.sin_addr = inet_makeaddr(IN_LOOPBACKNET, 1);
+	    statp->nsaddr.sin_addr = __inet_makeaddr(IN_LOOPBACKNET, 1);
 	    statp->nsaddr.sin_family = AF_INET;
 	    statp->nsaddr.sin_port = htons(NAMESERVER_PORT);
 	    statp->nscount = 1;