diff options
author | Jeremy Allison <jra@samba.org> | 1998-11-26 00:24:22 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 1998-11-26 00:24:22 +0000 |
commit | 4c0e765b10d8085c1ee2e417ac5d4eaf1b655b57 (patch) | |
tree | 27cc7b00962ad77d1a6644e46aa5386798dabbff | |
parent | f91be6bba992fc80212934343e80f43b87ad9c0d (diff) | |
download | samba-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.c | 18 | ||||
-rw-r--r-- | source/rpc_server/srv_samr.c | 2 |
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; |