summaryrefslogtreecommitdiffstats
path: root/source/lib/system_smbd.c
diff options
context:
space:
mode:
authorGerald Carter <jerry@samba.org>2006-10-19 22:34:58 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:15:34 -0500
commita6366b40b3967853c20ca5399021108f09ffd505 (patch)
treecc0828b2bd1184a76ea6adfbb476abf96dc20856 /source/lib/system_smbd.c
parente1490e72eafbe3a2f9cc2e3a46563a75a19672e0 (diff)
downloadsamba-a6366b40b3967853c20ca5399021108f09ffd505.tar.gz
samba-a6366b40b3967853c20ca5399021108f09ffd505.tar.xz
samba-a6366b40b3967853c20ca5399021108f09ffd505.zip
r19419: BUG 4109: Patch from Timur Bakeyev. Fix bug causing smbd to turn off
winbindd and fail to disable the _NO_WINBIND environment.
Diffstat (limited to 'source/lib/system_smbd.c')
-rw-r--r--source/lib/system_smbd.c15
1 files changed, 5 insertions, 10 deletions
diff --git a/source/lib/system_smbd.c b/source/lib/system_smbd.c
index afa64489cfd..fc506c901db 100644
--- a/source/lib/system_smbd.c
+++ b/source/lib/system_smbd.c
@@ -120,19 +120,15 @@ static int getgrouplist_internals(const char *user, gid_t gid, gid_t *groups,
static int sys_getgrouplist(const char *user, gid_t gid, gid_t *groups, int *grpcnt)
{
int retval;
- char *winbindd_env;
+ BOOL winbind_env;
DEBUG(10,("sys_getgrouplist: user [%s]\n", user));
- /* Save the winbindd state and not just blindly turn it back on */
-
- winbindd_env = getenv(WINBINDD_DONT_ENV);
-
/* This is only ever called for Unix users, remote memberships are
* always determined by the info3 coming back from auth3 or the
* PAC. */
-
- winbind_off() ;
+ winbind_env = winbind_env_set();
+ winbind_off();
#ifdef HAVE_GETGROUPLIST
retval = getgrouplist(user, gid, groups, grpcnt);
@@ -142,9 +138,8 @@ static int sys_getgrouplist(const char *user, gid_t gid, gid_t *groups, int *grp
unbecome_root();
#endif
- /* allow winbindd lookups , but only if they were not already disabled */
-
- if ( !(winbindd_env && strequal(winbindd_env, "1")) ) {
+ /* allow winbindd lookups, but only if they were not already disabled */
+ if (!winbind_env) {
winbind_on();
}