mirror of
				https://sourceware.org/git/glibc.git
				synced 2025-10-30 10:45:40 +03:00 
			
		
		
		
	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.
		
			
				
	
	
		
			16 lines
		
	
	
		
			430 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			16 lines
		
	
	
		
			430 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #include <inet/arpa/inet.h>
 | |
| 
 | |
| #ifndef _ISOMAC
 | |
| extern int __inet_aton (const char *__cp, struct in_addr *__inp);
 | |
| libc_hidden_proto (__inet_aton)
 | |
| 
 | |
| libc_hidden_proto (inet_aton)
 | |
| libc_hidden_proto (inet_ntop)
 | |
| libc_hidden_proto (inet_pton)
 | |
| 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
 |