summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>1998-11-26 00:24:22 +0000
committerJeremy Allison <jra@samba.org>1998-11-26 00:24:22 +0000
commit4c0e765b10d8085c1ee2e417ac5d4eaf1b655b57 (patch)
tree27cc7b00962ad77d1a6644e46aa5386798dabbff
parentf91be6bba992fc80212934343e80f43b87ad9c0d (diff)
downloadsamba-4c0e765b10d8085c1ee2e417ac5d4eaf1b655b57.tar.gz
samba-4c0e765b10d8085c1ee2e417ac5d4eaf1b655b57.tar.xz
samba-4c0e765b10d8085c1ee2e417ac5d4eaf1b655b57.zip
Added Luke's fix for the samlogon_user hack problem.
Jeremy.
-rw-r--r--source/rpc_server/srv_netlog.c18
-rw-r--r--source/rpc_server/srv_samr.c2
2 files changed, 10 insertions, 10 deletions
diff --git a/source/rpc_server/srv_netlog.c b/source/rpc_server/srv_netlog.c
index 04118800e2e..2c41b80ac7d 100644
--- a/source/rpc_server/srv_netlog.c
+++ b/source/rpc_server/srv_netlog.c
@@ -600,6 +600,7 @@ static void api_net_sam_logon( uint16 vuid,
DOM_CRED srv_cred;
struct smb_passwd *smb_pass = NULL;
UNISTR2 *uni_samlogon_user = NULL;
+ fstring nt_username;
user_struct *vuser = NULL;
@@ -654,23 +655,23 @@ static void api_net_sam_logon( uint16 vuid,
if (status == 0)
{
- pstrcpy(samlogon_user, unistrn2(uni_samlogon_user->buffer,
+ pstrcpy(nt_username, unistrn2(uni_samlogon_user->buffer,
uni_samlogon_user->uni_str_len));
- DEBUG(3,("User:[%s]\n", samlogon_user));
+ DEBUG(3,("User:[%s]\n", nt_username));
/*
* Convert to a UNIX username.
*/
- map_username(samlogon_user);
+ map_username(nt_username);
/*
* Do any case conversions.
*/
- (void)Get_Pwnam(samlogon_user, True);
+ (void)Get_Pwnam(nt_username, True);
become_root(True);
- smb_pass = getsmbpwnam(samlogon_user);
+ smb_pass = getsmbpwnam(nt_username);
unbecome_root(True);
if (smb_pass == NULL)
@@ -733,6 +734,7 @@ static void api_net_sam_logon( uint16 vuid,
/* XXXX hack to get standard_sub_basic() to use sam logon username */
/* possibly a better way would be to do a become_user() call */
sam_logon_in_ssb = True;
+ pstrcpy(samlogon_user, nt_username);
pstrcpy(logon_script, lp_logon_script());
pstrcpy(profile_path, lp_logon_path());
@@ -753,7 +755,7 @@ static void api_net_sam_logon( uint16 vuid,
* JRA.
*/
- get_domain_user_groups(domain_groups, samlogon_user);
+ get_domain_user_groups(domain_groups, nt_username);
/*
* make_dom_gids allocates the gids array. JRA.
@@ -763,7 +765,7 @@ static void api_net_sam_logon( uint16 vuid,
sam_logon_in_ssb = False;
- if (pdb_name_to_rid(samlogon_user, &r_uid, &r_gid))
+ if (pdb_name_to_rid(nt_username, &r_uid, &r_gid))
{
make_net_user_info3(&usr_info,
&dummy_time, /* logon_time */
@@ -773,7 +775,7 @@ static void api_net_sam_logon( uint16 vuid,
&dummy_time, /* pass_can_change_time */
&dummy_time, /* pass_must_change_time */
- samlogon_user , /* user_name */
+ nt_username , /* user_name */
vuser->real_name, /* full_name */
logon_script , /* logon_script */
profile_path , /* profile_path */
diff --git a/source/rpc_server/srv_samr.c b/source/rpc_server/srv_samr.c
index 323298ef7a4..65ef8a0dda2 100644
--- a/source/rpc_server/srv_samr.c
+++ b/source/rpc_server/srv_samr.c
@@ -28,8 +28,6 @@
extern int DEBUGLEVEL;
-extern BOOL sam_logon_in_ssb;
-extern pstring samlogon_user;
extern fstring global_myworkgroup;
extern pstring global_myname;
extern DOM_SID global_sam_sid;