summaryrefslogtreecommitdiff
path: root/source3/smbd
diff options
context:
space:
mode:
authorGerald Carter <jerry@samba.org>2004-03-19 22:06:54 +0000
committerGerald Carter <jerry@samba.org>2004-03-19 22:06:54 +0000
commitc24dccd413c41ed81454bc204c59d1fc17a54a33 (patch)
tree5dfc0b0db54ce4bf29cfb679340be4ed383cdcad /source3/smbd
parentd0b10586d1f9661a6fcf6934e52f8877c2578745 (diff)
downloadsamba-c24dccd413c41ed81454bc204c59d1fc17a54a33.tar.gz
samba-c24dccd413c41ed81454bc204c59d1fc17a54a33.tar.bz2
samba-c24dccd413c41ed81454bc204c59d1fc17a54a33.zip
BUG 417: fix %UuGg variables expansion in include lines setging the current_user_info struct in register_vuid() -- shouldn't be any more broken than we were
(This used to be commit a90c3bd281e7a62bb8482e42aa3b674eeeb5995a)
Diffstat (limited to 'source3/smbd')
-rw-r--r--source3/smbd/password.c4
-rw-r--r--source3/smbd/sesssetup.c9
2 files changed, 13 insertions, 0 deletions
diff --git a/source3/smbd/password.c b/source3/smbd/password.c
index 10c6aadb1f..9449113ddc 100644
--- a/source3/smbd/password.c
+++ b/source3/smbd/password.c
@@ -273,6 +273,10 @@ int register_vuid(auth_serversupplied_info *server_info, DATA_BLOB session_key,
/* Try and turn on server signing on the first non-guest sessionsetup. */
srv_set_signing(vuser->session_key, response_blob);
}
+
+ /* fill in the current_user_info struct */
+ set_current_user_info( &vuser->user );
+
return vuser->vuid;
}
diff --git a/source3/smbd/sesssetup.c b/source3/smbd/sesssetup.c
index d91aa94728..244db6d2c1 100644
--- a/source3/smbd/sesssetup.c
+++ b/source3/smbd/sesssetup.c
@@ -282,6 +282,9 @@ static int reply_spnego_kerberos(connection_struct *conn,
if (sess_vuid == -1) {
ret = NT_STATUS_LOGON_FAILURE;
} else {
+ /* current_user_info is changed on new vuid */
+ reload_services( True );
+
set_message(outbuf,4,0,True);
SSVAL(outbuf, smb_vwv3, 0);
@@ -355,6 +358,9 @@ static BOOL reply_spnego_ntlmssp(connection_struct *conn, char *inbuf, char *out
nt_status = NT_STATUS_LOGON_FAILURE;
} else {
+ /* current_user_info is changed on new vuid */
+ reload_services( True );
+
set_message(outbuf,4,0,True);
SSVAL(outbuf, smb_vwv3, 0);
@@ -911,6 +917,9 @@ int reply_sesssetup_and_X(connection_struct *conn, char *inbuf,char *outbuf,
return ERROR_NT(NT_STATUS_LOGON_FAILURE);
}
+ /* current_user_info is changed on new vuid */
+ reload_services( True );
+
if (!server_info->guest && !srv_check_sign_mac(inbuf)) {
exit_server("reply_sesssetup_and_X: bad smb signature");
}