summaryrefslogtreecommitdiff
path: root/source3/rpc_server
diff options
context:
space:
mode:
Diffstat (limited to 'source3/rpc_server')
-rw-r--r--source3/rpc_server/srv_netlog.c2
-rw-r--r--source3/rpc_server/srv_reg.c2
-rw-r--r--source3/rpc_server/srv_samr.c21
3 files changed, 21 insertions, 4 deletions
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)))