r4400 - in glibc-package/trunk/debian: . patches patches/any
Author: aurel32
Date: 2010-09-01 07:59:59 +0000 (Wed, 01 Sep 2010)
New Revision: 4400
Added:
glibc-package/trunk/debian/patches/any/cvs-getaddrinfo2.diff
Modified:
glibc-package/trunk/debian/changelog
glibc-package/trunk/debian/patches/series
Log:
* Add any/cvs-getaddrinfo2.diff from upstream to fix lookup issues with
non-default nsswitch.conf.
Modified: glibc-package/trunk/debian/changelog
===================================================================
--- glibc-package/trunk/debian/changelog 2010-09-01 07:57:48 UTC (rev 4399)
+++ glibc-package/trunk/debian/changelog 2010-09-01 07:59:59 UTC (rev 4400)
@@ -39,6 +39,8 @@
Earlier versions corrupts libc 2.11 libraries. Closes: #593966.
* Add alpha/submitted-epoll.diff and sparc/submitted-epoll.diff to fix
epoll_create1() on Alpha and SPARC. Closes: #576826.
+ * Add any/cvs-getaddrinfo2.diff from upstream to fix lookup issues with
+ non-default nsswitch.conf.
* Remove patches/alpha/cvs-longjmp-chk.diff and restore
patches/alpha/local-longjmp-chk.diff as the upstream version causes
regressions.
Added: glibc-package/trunk/debian/patches/any/cvs-getaddrinfo2.diff
===================================================================
--- glibc-package/trunk/debian/patches/any/cvs-getaddrinfo2.diff (rev 0)
+++ glibc-package/trunk/debian/patches/any/cvs-getaddrinfo2.diff 2010-09-01 07:59:59 UTC (rev 4400)
@@ -0,0 +1,38 @@
+2010-03-26 Ulrich Drepper <drepper@redhat.com>
+
+ * sysdeps/posix/getaddrinfo.c (gaih_inet): Don't assume success always
+ means aborting the loop over the NSS methods.
+
+diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
+index 8b7e38f..2e0c724 100644
+--- a/sysdeps/posix/getaddrinfo.c
++++ b/sysdeps/posix/getaddrinfo.c
+@@ -817,17 +817,18 @@ gaih_inet (const char *name, const struct gaih_service *service,
+ canon = name;
+ }
+ }
+-
+- break;
++ status = NSS_STATUS_SUCCESS;
++ }
++ else
++ {
++ /* We can have different states for AF_INET and
++ AF_INET6. Try to find a useful one for both. */
++ if (inet6_status == NSS_STATUS_TRYAGAIN)
++ status = NSS_STATUS_TRYAGAIN;
++ else if (status == NSS_STATUS_UNAVAIL
++ && inet6_status != NSS_STATUS_UNAVAIL)
++ status = inet6_status;
+ }
+-
+- /* We can have different states for AF_INET and
+- AF_INET6. Try to find a useful one for both. */
+- if (inet6_status == NSS_STATUS_TRYAGAIN)
+- status = NSS_STATUS_TRYAGAIN;
+- else if (status == NSS_STATUS_UNAVAIL
+- && inet6_status != NSS_STATUS_UNAVAIL)
+- status = inet6_status;
+ }
+ else
+ status = NSS_STATUS_UNAVAIL;
Modified: glibc-package/trunk/debian/patches/series
===================================================================
--- glibc-package/trunk/debian/patches/series 2010-09-01 07:57:48 UTC (rev 4399)
+++ glibc-package/trunk/debian/patches/series 2010-09-01 07:59:59 UTC (rev 4400)
@@ -255,4 +255,5 @@
any/cvs-flush-cache-textrels.diff
any/cvs-__block.diff
any/cvs-etc-resolv.conf.diff
+any/cvs-getaddrinfo2.diff
any/cvs-sunrpc-license.diff
Reply to: