diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | sysdeps/posix/getaddrinfo.c | 9 |
3 files changed, 14 insertions, 3 deletions
@@ -1,3 +1,9 @@ +2012-08-22 Jeff Law <law@redhat.com> + + [BZ #14505] + * sysdeps/posix/getaddrinfo.c (gaih_inet): Only use gethostbyname4_r + if the family is PF_UNSPEC. + 2012-08-22 Mike Frysinger <vapier@gentoo.org> * Makerules (lib-version): Rename from V. @@ -61,7 +61,7 @@ Version 2.16 14043, 14044, 14048, 14049, 14050, 14053, 14055, 14059, 14064, 14075, 14080, 14083, 14103, 14104, 14109, 14112, 14117, 14122, 14123, 14134, 14153, 14183, 14188, 14199, 14210, 14218, 14229, 14241, 14273, 14277, - 14278 + 14278, 14505 * Support for the x32 ABI on x86-64 added. The x32 target is selected by configuring glibc with: diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c index 81e928a..05883bd 100644 --- a/sysdeps/posix/getaddrinfo.c +++ b/sysdeps/posix/getaddrinfo.c @@ -832,8 +832,13 @@ gaih_inet (const char *name, const struct gaih_service *service, while (!no_more) { no_data = 0; - nss_gethostbyname4_r fct4 - = __nss_lookup_function (nip, "gethostbyname4_r"); + nss_gethostbyname4_r fct4 = NULL; + + /* gethostbyname4_r sends out parallel A and AAAA queries and + is thus only suitable for PF_UNSPEC. */ + if (req->ai_family == PF_UNSPEC) + fct4 = __nss_lookup_function (nip, "gethostbyname4_r"); + if (fct4 != NULL) { int herrno; |