From b20fc0046426bc6c6dfdeeef0cedcd975282576d Mon Sep 17 00:00:00 2001 From: Luke Leighton Date: Thu, 26 Nov 1998 00:48:31 +0000 Subject: we have a problem: resolution of "Primary Group RID" which we assumed would only be a domain group rid. it can also be a local group rid, which causes us problems in attempting to turn a unix gid into the correct rid (domain group or local group). sooo.... the fix is _in_ there, we just can't use it because it causes link / knock-on problems in nmbd. (This used to be commit e4ee6538709c33000774eb1676608f2dd67d5a30) --- source3/Makefile.in | 2 +- source3/groupdb/aliasdb.c | 1 + source3/passdb/smbpass.c | 15 ++++++++++++++- 3 files changed, 16 insertions(+), 2 deletions(-) (limited to 'source3') diff --git a/source3/Makefile.in b/source3/Makefile.in index 6aa97ee7e8..b310cbf715 100644 --- a/source3/Makefile.in +++ b/source3/Makefile.in @@ -190,7 +190,7 @@ NMBD_OBJ1 = nmbd/asyncdns.o nmbd/nmbd.o nmbd/nmbd_become_dmb.o \ nmbd/nmbd_workgroupdb.o nmbd/nmbd_synclists.o NMBD_OBJ = $(NMBD_OBJ1) $(PARAM_OBJ) $(LIBSMB_OBJ) $(UBIQX_OBJ) \ - $(PASSDB_OBJ) $(LIB_OBJ) + $(PASSDB_OBJ) $(LIB_OBJ) SWAT_OBJ = web/cgi.o web/diagnose.o web/startstop.o web/statuspage.o \ web/swat.o $(LIBSMB_OBJ) $(LOCKING_OBJ) \ diff --git a/source3/groupdb/aliasdb.c b/source3/groupdb/aliasdb.c index e37f491287..648700dd86 100644 --- a/source3/groupdb/aliasdb.c +++ b/source3/groupdb/aliasdb.c @@ -92,6 +92,7 @@ LOCAL_GRP *iterate_getaliasrid(uint32 rid, LOCAL_GRP_MEMBER **mem, int *num_mem) while ((als = getaliasent(fp, mem, num_mem)) != NULL && als->rid != rid) { + DEBUG(10,("iterate: %s 0x%x", als->name, als->rid)); } if (als != NULL) diff --git a/source3/passdb/smbpass.c b/source3/passdb/smbpass.c index e15a9b1dd7..262ffa3e2e 100644 --- a/source3/passdb/smbpass.c +++ b/source3/passdb/smbpass.c @@ -264,7 +264,9 @@ static struct sam_passwd *getsmbfile21pwent(void *vp) struct smb_passwd *pw_buf = getsmbfilepwent(vp); static struct sam_passwd user; struct passwd *pwfile; - +#if ARGH + uint32 status = 0x0; +#endif static pstring full_name; static pstring home_dir; static pstring home_drive; @@ -298,8 +300,12 @@ static struct sam_passwd *getsmbfile21pwent(void *vp) user.smb_userid = pw_buf->smb_userid; user.smb_grpid = pwfile->pw_gid; +#if ARGH + status = lookup_user_rids(pw_buf->smb_name, &user.user_rid, &user.group_rid); +#else user.user_rid = pwdb_uid_to_user_rid (user.smb_userid); user.group_rid = pwdb_gid_to_group_rid(user.smb_grpid ); +#endif pstrcpy(full_name , pwfile->pw_gecos ); pstrcpy(logon_script , lp_logon_script ()); @@ -328,6 +334,13 @@ static struct sam_passwd *getsmbfile21pwent(void *vp) pstrcpy(workstations , ""); } +#if ARGH + if (status != 0x0) + { + return NULL; + } +#endif + user.smb_name = pw_buf->smb_name; user.full_name = full_name; user.home_dir = home_dir; -- cgit