diff options
author | Volker Lendecke <vlendec@samba.org> | 2004-03-18 07:36:36 +0000 |
---|---|---|
committer | Volker Lendecke <vlendec@samba.org> | 2004-03-18 07:36:36 +0000 |
commit | 60a237b0b5444b5dc1ba84f31891723e7d7f804d (patch) | |
tree | 58f3397941f394cfd3dbad25b5d8849d6d6fc188 | |
parent | ef4a7b3c408d21f9979a52ac3ad84cc566a58e91 (diff) | |
download | samba-60a237b0b5444b5dc1ba84f31891723e7d7f804d.tar.gz samba-60a237b0b5444b5dc1ba84f31891723e7d7f804d.tar.bz2 samba-60a237b0b5444b5dc1ba84f31891723e7d7f804d.zip |
Fix sambaUserWorkstations for network samlogons against us as DC. Strip
the \\ off the workstation.
Volker
(This used to be commit d01cb00aad76f8be9767fdcfd92c88ea5d8c4f14)
-rw-r--r-- | source3/rpc_server/srv_netlog_nt.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/source3/rpc_server/srv_netlog_nt.c b/source3/rpc_server/srv_netlog_nt.c index e8bc6345de..bf0e81f5c8 100644 --- a/source3/rpc_server/srv_netlog_nt.c +++ b/source3/rpc_server/srv_netlog_nt.c @@ -598,14 +598,22 @@ NTSTATUS _net_sam_logon(pipes_struct *p, NET_Q_SAM_LOGON *q_u, NET_R_SAM_LOGON * switch (ctr->switch_value) { case NET_LOGON_TYPE: { + const char *wksname = nt_workstation; + if (!NT_STATUS_IS_OK(status = make_auth_context_fixed(&auth_context, ctr->auth.id2.lm_chal))) { return status; } + /* For a network logon, the workstation name comes in with two + * backslashes in the front. Strip them if they are there. */ + + if (*wksname == '\\') wksname++; + if (*wksname == '\\') wksname++; + /* Standard challenge/response authenticaion */ if (!make_user_info_netlogon_network(&user_info, nt_username, nt_domain, - nt_workstation, + wksname, ctr->auth.id2.lm_chal_resp.buffer, ctr->auth.id2.lm_chal_resp.str_str_len, ctr->auth.id2.nt_chal_resp.buffer, |