diff options
Diffstat (limited to 'source3/lib')
-rw-r--r-- | source3/lib/system_smbd.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/source3/lib/system_smbd.c b/source3/lib/system_smbd.c index ac7a096295..afa64489cf 100644 --- a/source3/lib/system_smbd.c +++ b/source3/lib/system_smbd.c @@ -132,13 +132,7 @@ static int sys_getgrouplist(const char *user, gid_t gid, gid_t *groups, int *grp * always determined by the info3 coming back from auth3 or the * PAC. */ - if ( !winbind_putenv("0") ) { - DEBUG(0,("sys_getgroup_list: Insufficient environment space " - "for %s\n", WINBINDD_DONT_ENV)); - } else { - DEBUG(10,("sys_getgrouplist(): disabled winbindd for group " - "lookup [user == %s]\n", user)); - } + winbind_off() ; #ifdef HAVE_GETGROUPLIST retval = getgrouplist(user, gid, groups, grpcnt); @@ -148,10 +142,12 @@ static int sys_getgrouplist(const char *user, gid_t gid, gid_t *groups, int *grp unbecome_root(); #endif - /* allow winbindd lookups */ + /* allow winbindd lookups , but only if they were not already disabled */ + + if ( !(winbindd_env && strequal(winbindd_env, "1")) ) { + winbind_on(); + } - winbind_putenv( winbindd_env ? winbindd_env : "1" ); - return retval; } |