diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | inet/getnetgrent_r.c | 8 |
2 files changed, 9 insertions, 4 deletions
@@ -1,3 +1,8 @@ +2005-09-24 Jakub Jelinek <jakub@redhat.com> + + * inet/getnetgrent_r.c (innetgr): Call endfct even if result != 0. + Return 1 only if result == 1. Patch by Benoit Capelle. + 2005-09-25 Ulrich Drepper <drepper@redhat.com> [BZ #278] diff --git a/inet/getnetgrent_r.c b/inet/getnetgrent_r.c index 4dbccd9..97b2b80 100644 --- a/inet/getnetgrent_r.c +++ b/inet/getnetgrent_r.c @@ -409,9 +409,6 @@ innetgr (const char *netgroup, const char *host, const char *user, } } - if (result != 0) - break; - /* If we found one service which does know the given netgroup we don't try further. */ status = NSS_STATUS_RETURN; @@ -422,6 +419,9 @@ innetgr (const char *netgroup, const char *host, const char *user, if (endfct != NULL) (*endfct) (&entry); + if (result != 0) + break; + /* Look for the next service. */ no_more = __nss_next (&entry.nip, "setnetgrent", &setfct.ptr, status, 0); @@ -444,6 +444,6 @@ innetgr (const char *netgroup, const char *host, const char *user, /* Free the memory. */ free_memory (&entry); - return result; + return result == 1; } libc_hidden_def (innetgr) |