Author: abartlet
Date: 2004-10-29 09:58:23 +0000 (Fri, 29 Oct 2004)
New Revision: 3365

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=3365

Log:
Fill in the user and primary group SIDs into the 'server info' before
the session info.

Andrew Bartlett

Modified:
   branches/SAMBA_4_0/source/libcli/auth/gensec_krb5.c


Changeset:
Modified: branches/SAMBA_4_0/source/libcli/auth/gensec_krb5.c
===================================================================
--- branches/SAMBA_4_0/source/libcli/auth/gensec_krb5.c 2004-10-29 09:57:31 UTC (rev 
3364)
+++ branches/SAMBA_4_0/source/libcli/auth/gensec_krb5.c 2004-10-29 09:58:23 UTC (rev 
3365)
@@ -616,8 +616,8 @@
 
        *session_info_out = NULL;
 
-       /* IF we have the PAC - otherwise (TODO) we need to get this
-        * data from elsewere - local ldb, or lookup of some
+       /* IF we have the PAC - otherwise we need to get this
+        * data from elsewere - local ldb, or (TODO) lookup of some
         * kind... */
 
        principal = talloc_strdup(gensec_krb5_state, 
gensec_krb5_state->peer_principal);
@@ -666,14 +666,17 @@
                }
                
                
-               sid = dom_sid_dup(session_info, logon_info->dom_sid);
-               ptoken->user_sids[0] = dom_sid_add_rid(session_info, sid, 
logon_info->user_rid);
+               sid = dom_sid_dup(server_info, logon_info->dom_sid);
+               server_info->user_sid = dom_sid_add_rid(server_info, sid, 
logon_info->user_rid);
+               sid = dom_sid_dup(server_info, logon_info->dom_sid);
+               server_info->primary_group_sid = dom_sid_add_rid(server_info, sid, 
logon_info->group_rid);
+
+               ptoken->user_sids[0] = talloc_reference(session_info, 
server_info->user_sid);
                ptoken->num_sids++;
-               sid = dom_sid_dup(session_info, logon_info->dom_sid);
-               ptoken->user_sids[1] = dom_sid_add_rid(session_info, sid, 
logon_info->group_rid);
+               ptoken->user_sids[1] = talloc_reference(session_info, 
server_info->primary_group_sid);
                ptoken->num_sids++;
-               
-               for (;ptoken->num_sids < logon_info->groups_count; ptoken->num_sids++) 
{
+
+               for (;ptoken->num_sids < (logon_info->groups_count + 2); 
ptoken->num_sids++) {
                        sid = dom_sid_dup(session_info, logon_info->dom_sid);
                        ptoken->user_sids[ptoken->num_sids]
                                = dom_sid_add_rid(session_info, sid, 

Reply via email to