summaryrefslogtreecommitdiffstats
path: root/source/rpc_server
diff options
context:
space:
mode:
authorLuke Leighton <lkcl@samba.org>1999-11-16 21:14:53 +0000
committerLuke Leighton <lkcl@samba.org>1999-11-16 21:14:53 +0000
commit70b2c1ecbb4fbbb86fea676c80754485aae5ab13 (patch)
treea1c1feeca04ba4d2640d206e0c9aa79d1be24a51 /source/rpc_server
parent71f12138679251a9ebcada35969d9baea286a3e9 (diff)
downloadsamba-70b2c1ecbb4fbbb86fea676c80754485aae5ab13.tar.gz
samba-70b2c1ecbb4fbbb86fea676c80754485aae5ab13.tar.xz
samba-70b2c1ecbb4fbbb86fea676c80754485aae5ab13.zip
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 \.
Diffstat (limited to 'source/rpc_server')
-rw-r--r--source/rpc_server/srv_netlog.c2
-rw-r--r--source/rpc_server/srv_reg.c2
-rw-r--r--source/rpc_server/srv_samr.c21
3 files changed, 21 insertions, 4 deletions
diff --git a/source/rpc_server/srv_netlog.c b/source/rpc_server/srv_netlog.c
index 09678e3eaf4..5e9ae350942 100644
--- a/source/rpc_server/srv_netlog.c
+++ b/source/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/source/rpc_server/srv_reg.c b/source/rpc_server/srv_reg.c
index 0ba67749007..fcc22a792ab 100644
--- a/source/rpc_server/srv_reg.c
+++ b/source/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/source/rpc_server/srv_samr.c b/source/rpc_server/srv_samr.c
index c3464380ed9..ff2f1bbb8cc 100644
--- a/source/rpc_server/srv_samr.c
+++ b/source/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)))