diff options
Diffstat (limited to 'source3/nmbd/nmbd_processlogon.c')
-rw-r--r-- | source3/nmbd/nmbd_processlogon.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/source3/nmbd/nmbd_processlogon.c b/source3/nmbd/nmbd_processlogon.c index 64f66038e0..f881b867c0 100644 --- a/source3/nmbd/nmbd_processlogon.c +++ b/source3/nmbd/nmbd_processlogon.c @@ -195,7 +195,7 @@ reporting %s domain %s 0x%x ntversion=%x lm_nt token=%x lm_20 token=%x\n", * Let's ignore the SID. */ - strcpy(ascuser, unistr(uniuser)); + pstrcpy(ascuser, unistr(uniuser)); DEBUG(3,("process_logon_packet: SAMLOGON user %s\n", ascuser)); strcpy(reply_name,"\\\\"); /* Here it wants \\LOGONSERVER. */ @@ -203,12 +203,18 @@ reporting %s domain %s 0x%x ntversion=%x lm_nt token=%x lm_20 token=%x\n", smb_pass = get_smbpwd_entry(ascuser, 0); - if(!smb_pass) + if(!smb_pass ) { DEBUG(3,("process_logon_packet: SAMLOGON request from %s(%s) for %s, not in password file\n", unistr(unicomp),inet_ntoa(p->ip), ascuser)); return; } + else if(smb_pass->acct_ctrl & ACB_DISABLED) + { + DEBUG(3,("process_logon_packet: SAMLOGON request from %s(%s) for %s, accound disabled.\n", + unistr(unicomp),inet_ntoa(p->ip), ascuser)); + return; + } else { DEBUG(3,("process_logon_packet: SAMLOGON request from %s(%s) for %s, returning logon svr %s domain %s code %x token=%x\n", |