* nis/nss_compat/compat-initgroups.c (getgrent_next_nss): Don't
	use result of nss_getgrgid_r if nothing was found.  For other
	error return with a failure.
	Partially based on a patch by Petr Baudis <pasky@suse.cz>.
This commit is contained in:
Ulrich Drepper 2007-11-23 02:36:37 +00:00
parent 3a63267450
commit 8588312396
2 changed files with 19 additions and 4 deletions

View File

@ -1,5 +1,11 @@
2007-11-22 Ulrich Drepper <drepper@redhat.com>
[BZ #5378]
* nis/nss_compat/compat-initgroups.c (getgrent_next_nss): Don't
use result of nss_getgrgid_r if nothing was found. For other
error return with a failure.
Partially based on a patch by Petr Baudis <pasky@suse.cz>.
* locale/programs/ld-collate.c (collate_read): Fix loop to match
macro name.

View File

@ -303,10 +303,19 @@ getgrent_next_nss (ent_t *ent, char *buffer, size_t buflen, const char *user,
else
tmpbuf = extend_alloca (tmpbuf, tmplen, 2 * tmplen);
if (!in_blacklist (grpbuf.gr_name,
strlen (grpbuf.gr_name), ent))
check_and_add_group (user, group, start, size, groupsp,
limit, &grpbuf);
if (__builtin_expect (status != NSS_STATUS_NOTFOUND, 1))
{
if (__builtin_expect (status != NSS_STATUS_SUCCESS, 0))
{
free (mygroups);
return status;
}
if (!in_blacklist (grpbuf.gr_name,
strlen (grpbuf.gr_name), ent))
check_and_add_group (user, group, start, size, groupsp,
limit, &grpbuf);
}
}
free (mygroups);