diff options
author | Günther Deschner <gd@samba.org> | 2007-02-16 15:13:57 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:18:01 -0500 |
commit | 637b01b63d799af5b66cd6d62f56b2f0b00c935f (patch) | |
tree | a2656c24aa376fbdb95a822c6e010183589abd42 | |
parent | 4003edf0df14b69fca0d1af923badbd682c0008c (diff) | |
download | samba-637b01b63d799af5b66cd6d62f56b2f0b00c935f.tar.gz samba-637b01b63d799af5b66cd6d62f56b2f0b00c935f.tar.bz2 samba-637b01b63d799af5b66cd6d62f56b2f0b00c935f.zip |
r21387: Another important fix for non-AD domains:
Avoid assigning 0 as primary group id for users in NSS calls.
Jerry, please check.
Guenther
(This used to be commit 03f5f7d0140c99411c137e7e2eac7e2d0c08202e)
-rw-r--r-- | source3/nsswitch/winbindd_rpc.c | 2 | ||||
-rw-r--r-- | source3/nsswitch/winbindd_user.c | 8 |
2 files changed, 3 insertions, 7 deletions
diff --git a/source3/nsswitch/winbindd_rpc.c b/source3/nsswitch/winbindd_rpc.c index c3d7066098..11d9fe0dbb 100644 --- a/source3/nsswitch/winbindd_rpc.c +++ b/source3/nsswitch/winbindd_rpc.c @@ -416,6 +416,7 @@ static NTSTATUS query_user(struct winbindd_domain *domain, user_info->homedir = NULL; user_info->shell = NULL; + user_info->primary_gid = (gid_t)-1; SAFE_FREE(user); @@ -454,6 +455,7 @@ static NTSTATUS query_user(struct winbindd_domain *domain, &ctr->info.id21->uni_full_name); user_info->homedir = NULL; user_info->shell = NULL; + user_info->primary_gid = (gid_t)-1; return NT_STATUS_OK; } diff --git a/source3/nsswitch/winbindd_user.c b/source3/nsswitch/winbindd_user.c index aa9ece7d89..9df3a6a3bc 100644 --- a/source3/nsswitch/winbindd_user.c +++ b/source3/nsswitch/winbindd_user.c @@ -286,6 +286,7 @@ static void getpwsid_sid2gid_recv(void *private_data, BOOL success, gid_t gid) call worked or not. --jerry */ if ( s->gid == (gid_t)-1 ) { + if (!success) { DEBUG(5, ("Could not query user's %s\\%s\n gid", s->domain->name, s->username)); @@ -296,13 +297,6 @@ static void getpwsid_sid2gid_recv(void *private_data, BOOL success, gid_t gid) s->gid = gid; } - /* allow the nss backend to override the primary group ID. - If the gid has already been set, then keep it */ - - if ( s->gid == (gid_t)-1 ) { - s->gid = gid; - } - pw = &s->state->response.data.pw; pw->pw_uid = s->uid; pw->pw_gid = s->gid; |