Handle missing NSS modules and those without callbacks.
authorUlrich Drepper <drepper@redhat.com>
Sat, 25 Jul 2009 19:29:04 +0000 (12:29 -0700)
committerUlrich Drepper <drepper@redhat.com>
Sat, 25 Jul 2009 19:29:04 +0000 (12:29 -0700)
getaddrinfo didn't update the status variable in that round of the
loop if no callback was used.

ChangeLog
sysdeps/posix/getaddrinfo.c

index 8246614..f47b089 100644 (file)
--- 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.
 
index d346c62..a788d18 100644 (file)
@@ -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)