Fix sambaUserWorkstations for network samlogons against us as DC. Strip
authorVolker Lendecke <vlendec@samba.org>
Thu, 18 Mar 2004 07:37:39 +0000 (07:37 +0000)
committerVolker Lendecke <vlendec@samba.org>
Thu, 18 Mar 2004 07:37:39 +0000 (07:37 +0000)
the \\ off the workstation.

Volker

source/rpc_server/srv_netlog_nt.c

index 2f301a794c7816425673272138070264ff8d9d6d..51ed79980c78d329be346e4e6215cd5ad9ae7431 100644 (file)
@@ -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,