summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2009-07-25 12:29:04 -0700
committerUlrich Drepper <drepper@redhat.com>2009-07-25 12:29:04 -0700
commit657317537c09b82a2feb1194fda045f63e3a1222 (patch)
tree526220e8f52b6b04486c1457134c5084b0c6efff
parent29e92fa5cd9c5c09a9c78563f35729fec9075e7f (diff)
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.
-rw-r--r--ChangeLog4
-rw-r--r--sysdeps/posix/getaddrinfo.c2
2 files changed, 6 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 8246614d1a..f47b0897a4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +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.
+
* sysdeps/x86_64/multiarch/strcmp.S: Exclude unused code from being
compiled in.
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)