diff --git a/ChangeLog b/ChangeLog index dc61c8783c..a9f3338d00 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2014-09-10 Siddhesh Poyarekar + + [BZ #17363] + * inet/getnetgrent_r.c (__internal_getnetgrent_r): Try next + group if the current group is empty. + 2014-09-10 Adhemerval Zanella * benchtests/bench-memset.c (test_main): Add more test from size diff --git a/NEWS b/NEWS index 721b457a8b..40e2497eff 100644 --- a/NEWS +++ b/NEWS @@ -5,6 +5,12 @@ See the end for copying conditions. Please send GNU C library bug reports via using `glibc' in the "product" field. +Version 2.21 + +* The following bugs are resolved with this release: + + 17363. + Version 2.20 * The following bugs are resolved with this release: diff --git a/inet/getnetgrent_r.c b/inet/getnetgrent_r.c index f6d064dbb5..e1015377e6 100644 --- a/inet/getnetgrent_r.c +++ b/inet/getnetgrent_r.c @@ -297,7 +297,10 @@ __internal_getnetgrent_r (char **hostp, char **userp, char **domainp, { status = DL_CALL_FCT (*fct, (datap, buffer, buflen, &errno)); - if (status == NSS_STATUS_RETURN) + if (status == NSS_STATUS_RETURN + /* The service returned a NOTFOUND, but there are more groups that we + need to resolve before we give up. */ + || (status == NSS_STATUS_NOTFOUND && datap->needed_groups != NULL)) { /* This was the last one for this group. Look at next group if available. */