From aa152ec6ad1bcc84a53f3c02810c7d968d1b8216 Mon Sep 17 00:00:00 2001
From: Ulrich Drepper <drepper@redhat.com>
Date: Sat, 25 Jul 2009 12:29:04 -0700
Subject: [PATCH] Handle missing NSS modules and those without callbacks.

getaddrinfo didn't update the status variable in that round of the
loop if no callback was used.
(cherry picked from commit 657317537c09b82a2feb1194fda045f63e3a1222)
---
 ChangeLog                   | 6 ++++++
 sysdeps/posix/getaddrinfo.c | 2 ++
 2 files changed, 8 insertions(+)

diff --git a/ChangeLog b/ChangeLog
index ec8c64aedf..637b91b263 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2009-07-25  Ulrich Drepper  <drepper@redhat.com>
+
+	[BZ #10448]
+	* sysdeps/posix/getaddrinfo.c (gaih_inet): If NSS module contains no
+	callback we must touch the status to avoid using stale value.
+
 2009-06-16  Ulrich Drepper  <drepper@redhat.com>
 
 	* login/Makefile: Build pt_chown as PIE.
diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
index d346c621fb..a788d18fee 100644
--- a/sysdeps/posix/getaddrinfo.c
+++ b/sysdeps/posix/getaddrinfo.c
@@ -833,6 +833,8 @@ gaih_inet (const char *name, const struct gaih_service *service,
 			       && inet6_status != NSS_STATUS_UNAVAIL)
 			status = inet6_status;
 		    }
+		  else
+		    status = NSS_STATUS_UNAVAIL;
 		}
 
 	      if (nss_next_action (nip, status) == NSS_ACTION_RETURN)