diff options
Diffstat (limited to 'source3/rpc_server')
-rw-r--r-- | source3/rpc_server/srv_brs.c | 2 | ||||
-rw-r--r-- | source3/rpc_server/srv_netlog.c | 7 | ||||
-rw-r--r-- | source3/rpc_server/srv_pipe.c | 30 | ||||
-rw-r--r-- | source3/rpc_server/srv_pipe_hnd.c | 14 |
4 files changed, 19 insertions, 34 deletions
diff --git a/source3/rpc_server/srv_brs.c b/source3/rpc_server/srv_brs.c index cde5a79beb..c9abab20be 100644 --- a/source3/rpc_server/srv_brs.c +++ b/source3/rpc_server/srv_brs.c @@ -93,6 +93,6 @@ struct api_struct api_brs_cmds[] = ********************************************************************/ BOOL api_brs_rpc(rpcsrv_struct *p, prs_struct *data) { - return api_rpcTNP(p, "api_brssvc_rpc", api_brs_cmds, data); + return api_rpcTNP(p, "api_brs_rpc", api_brs_cmds, data); } diff --git a/source3/rpc_server/srv_netlog.c b/source3/rpc_server/srv_netlog.c index 22788508eb..9721b3bf00 100644 --- a/source3/rpc_server/srv_netlog.c +++ b/source3/rpc_server/srv_netlog.c @@ -334,6 +334,13 @@ static BOOL get_md4pw(char *md4pw, char *mach_name, char *mach_acct) return True; } + if (strequal(mach_name, global_myname)) + { + DEBUG(0,("get_md4pw: *** LOOPBACK DETECTED - USING NULL KEY ***\n")); + memset(md4pw, 0, 16); + return True; + } + DEBUG(0,("get_md4pw: Workstation %s: no account in domain\n", mach_acct)); return False; } diff --git a/source3/rpc_server/srv_pipe.c b/source3/rpc_server/srv_pipe.c index 73a06b208c..d15cc1248c 100644 --- a/source3/rpc_server/srv_pipe.c +++ b/source3/rpc_server/srv_pipe.c @@ -231,8 +231,6 @@ static BOOL api_pipe_ntlmssp_verify(rpcsrv_struct *l) size_t wks_len; BOOL anonymous = False; - struct smb_passwd *smb_pass = NULL; - memset(null_pwd, 0, sizeof(null_pwd)); DEBUG(5,("api_pipe_ntlmssp_verify: checking user details\n")); @@ -304,19 +302,13 @@ static BOOL api_pipe_ntlmssp_verify(rpcsrv_struct *l) else { DEBUG(5,("user: %s domain: %s wks: %s\n", l->user_name, l->domain, l->wks)); - become_root(True); - smb_pass = getsmbpwnam(l->user_name); - l->ntlmssp_validated = pass_check_smb(smb_pass, l->domain, + become_root(False); + l->ntlmssp_validated = check_domain_security(l->user_name, l->domain, (uchar*)l->ntlmssp_chal.challenge, lm_owf, lm_owf_len, nt_owf, nt_owf_len, - NULL, l->user_sess_key); - unbecome_root(True); - - if (smb_pass != NULL) - { - pwd = smb_pass->smb_passwd; - } + l->user_sess_key); + unbecome_root(False); } if (l->ntlmssp_validated && pwd != NULL) @@ -463,20 +455,6 @@ static struct api_cmd* add_api_cmd_to_array(uint32 *len, } -#if 0 -{ - { "lsarpc", "lsass", api_ntlsa_rpc }, - { "samr", "lsass", api_samr_rpc }, - { "srvsvc", "ntsvcs", api_srvsvc_rpc }, - { "wkssvc", "ntsvcs", api_wkssvc_rpc }, - { "browser", "ntsvcs", api_brs_rpc }, - { "svcctl", "ntsvcs", api_svcctl_rpc }, - { "NETLOGON", "lsass", api_netlog_rpc }, - { "winreg", "winreg", api_reg_rpc }, - { "spoolss", "spoolss", api_spoolss_rpc }, - { NULL, NULL, NULL } -}; -#endif void close_msrpc_command_processor(void) { diff --git a/source3/rpc_server/srv_pipe_hnd.c b/source3/rpc_server/srv_pipe_hnd.c index 8a28674d3d..f8bde1bf9b 100644 --- a/source3/rpc_server/srv_pipe_hnd.c +++ b/source3/rpc_server/srv_pipe_hnd.c @@ -135,14 +135,13 @@ pipes_struct *open_rpc_pipe_p(char *pipe_name, DEBUG(5,("open pipes: name %s pnum=%x\n", p->name, p->pnum)); } - if (strequal(pipe_name, "lsarpc")) + m = msrpc_use_add(pipe_name, &usr, False); + if (m == NULL) { - m = msrpc_use_add(pipe_name, &usr, False); - if (m == NULL) - { - DEBUG(5,("open pipes: msrpc redirect failed\n")); - return NULL; - } + DEBUG(5,("open pipes: msrpc redirect failed\n")); + return NULL; + } +#if 0 } else { @@ -164,6 +163,7 @@ pipes_struct *open_rpc_pipe_p(char *pipe_name, memcpy(l->user_sess_key, vuser->user_sess_key, sizeof(l->user_sess_key)); } +#endif p = (pipes_struct *)malloc(sizeof(*p)); if (!p) return NULL; |