we have a problem: resolution of "Primary Group RID" which we assumed
authorLuke Leighton <lkcl@samba.org>
Thu, 26 Nov 1998 00:48:31 +0000 (00:48 +0000)
committerLuke Leighton <lkcl@samba.org>
Thu, 26 Nov 1998 00:48:31 +0000 (00:48 +0000)
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.

source/Makefile.in
source/groupdb/aliasdb.c
source/passdb/smbpass.c

index 6aa97ee7e8c1d149bbc542837c16bbf7c0d830bc..b310cbf715e1183321d79105b2688c89f4f16db0 100644 (file)
@@ -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) \
index e37f4912879351eee6f525ad50d8bbfc79463090..648700dd863e732e458a29cf8a3d25e39dcbcceb 100644 (file)
@@ -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)
index e15a9b1dd703fd8ae6581742ccb3120c75f9ab43..262ffa3e2e6b706656bb0348bc3eeed3f79494db 100644 (file)
@@ -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;