From cc8df5ce4955fc721e11ff08de052554894d963a Mon Sep 17 00:00:00 2001 From: Luke Leighton Date: Tue, 16 Nov 1999 21:14:53 +0000 Subject: attempting to get nt5 wksta to join domain. 1) had to fix samr "create user" and "set user info" (level 23). 2) had to fix netlogon enum trust domains 3) registry key needed \\ in it not \. (This used to be commit 70b2c1ecbb4fbbb86fea676c80754485aae5ab13) --- source3/rpc_server/srv_netlog.c | 2 +- source3/rpc_server/srv_reg.c | 2 +- source3/rpc_server/srv_samr.c | 21 +++++++++++++++++++-- 3 files changed, 21 insertions(+), 4 deletions(-) (limited to 'source3/rpc_server') diff --git a/source3/rpc_server/srv_netlog.c b/source3/rpc_server/srv_netlog.c index 09678e3eaf..5e9ae35094 100644 --- a/source3/rpc_server/srv_netlog.c +++ b/source3/rpc_server/srv_netlog.c @@ -102,7 +102,7 @@ static void net_reply_trust_dom_list(NET_Q_TRUST_DOM_LIST *q_t, prs_struct *rdat /* store the response in the SMB stream */ net_io_r_trust_dom("", &r_t, rdata, 0); - DEBUG(6,("net_reply_trust_dom_listlogon_ctrl2: %d\n", __LINE__)); + DEBUG(6,("net_reply_trust_dom_list: %d\n", __LINE__)); } diff --git a/source3/rpc_server/srv_reg.c b/source3/rpc_server/srv_reg.c index 0ba6774900..fcc22a792a 100644 --- a/source3/rpc_server/srv_reg.c +++ b/source3/rpc_server/srv_reg.c @@ -143,7 +143,7 @@ static void reg_reply_open_entry(REG_Q_OPEN_ENTRY *q_u, DEBUG(5,("reg_open_entry: %s\n", name)); /* lkcl XXXX do a check on the name, here */ if (!strequal(name, "SYSTEM\\CurrentControlSet\\Control\\ProductOptions") || - !strequal(name, "SYSTEM\\CurrentControlSet\\Services\\NETLOGON\Parameters")) + !strequal(name, "SYSTEM\\CurrentControlSet\\Services\\NETLOGON\\Parameters")) { status = 0xC000000 | NT_STATUS_ACCESS_DENIED; } diff --git a/source3/rpc_server/srv_samr.c b/source3/rpc_server/srv_samr.c index c3464380ed..ff2f1bbb8c 100644 --- a/source3/rpc_server/srv_samr.c +++ b/source3/rpc_server/srv_samr.c @@ -2090,6 +2090,11 @@ static BOOL set_user_info_23(SAM_USER_INFO_23 *id23, uint32 rid) static uchar lm_hash[16]; pstring new_pw; + if (id23 == NULL) + { + DEBUG(5, ("set_user_info_23: NULL id23\n")); + return False; + } if (pwd == NULL) { return False; @@ -2155,6 +2160,12 @@ static void samr_reply_set_userinfo(SAMR_Q_SET_USERINFO *q_u, DEBUG(5,("samr_reply_set_userinfo: rid:0x%x\n", rid)); /* ok! user info levels (there are lots: see MSDEV help), off we go... */ + if (status == 0x0 && q_u->info.id == NULL) + { + DEBUG(5,("samr_reply_set_userinfo: NULL info level\n")); + status = 0xC0000000 | NT_STATUS_INVALID_INFO_CLASS; + } + if (status == 0x0) { switch (q_u->switch_value) @@ -2170,7 +2181,13 @@ static void samr_reply_set_userinfo(SAMR_Q_SET_USERINFO *q_u, case 23: { SAM_USER_INFO_23 *id23 = q_u->info.id23; - SamOEMhash(id23->pass, user_sess_key, True); + SamOEMhash(id23->pass, user_sess_key, 1); +#if DEBUG_PASSWORD + DEBUG(100,("pass buff:\n")); + dump_data(100, id23->pass, sizeof(id23->pass)); +#endif + dbgflush(); + status = set_user_info_23(id23, rid) ? 0 : (0xC0000000 | NT_STATUS_ACCESS_DENIED); break; } @@ -2663,7 +2680,7 @@ static void samr_reply_create_user(SAMR_Q_CREATE_USER *q_u, pstring msg_str; if (!local_password_change(user_name, True, - q_u->acb_info, 0xffff, + q_u->acb_info | ACB_DISABLED, 0xffff, NULL, err_str, sizeof(err_str), msg_str, sizeof(msg_str))) -- cgit