1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-10 12:58:35 +03:00

Fix to avoid calling getgrgid for no reason.

Jeremy.
(This used to be commit b057a7349b2d6420f96a6ebc31822da66b39fe6c)
This commit is contained in:
Jeremy Allison 2000-10-11 03:46:14 +00:00
parent 26a4a34d36
commit 4498212487

View File

@ -265,32 +265,20 @@ static BOOL user_in_netgroup_list(char *user,char *ngname)
static BOOL user_in_group_list(char *user,char *gname)
{
#ifdef HAVE_GETGRENT
struct group *gptr;
char **member;
struct passwd *pass = Get_Pwnam(user,False);
if (pass) {
gptr = getgrgid(pass->pw_gid);
if (gptr && strequal(gptr->gr_name,gname))
return(True);
}
if ((gptr = (struct group *)getgrnam(gname)) == NULL)
return False;
while ((gptr = (struct group *)getgrent())) {
if (!strequal(gptr->gr_name,gname))
continue;
member = gptr->gr_mem;
while (member && *member) {
if (strequal(*member,user)) {
endgrent();
return(True);
}
member++;
member = gptr->gr_mem;
while (member && *member) {
if (strequal(*member,user)) {
return(True);
}
member++;
}
endgrent();
#endif /* HAVE_GETGRNAM */
return False;
}