diff options
Diffstat (limited to 'usr/src/lib/smbsrv/libmlsvc/common/netr_auth.c')
-rw-r--r-- | usr/src/lib/smbsrv/libmlsvc/common/netr_auth.c | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/usr/src/lib/smbsrv/libmlsvc/common/netr_auth.c b/usr/src/lib/smbsrv/libmlsvc/common/netr_auth.c index 1b26087fb8..c385d837b8 100644 --- a/usr/src/lib/smbsrv/libmlsvc/common/netr_auth.c +++ b/usr/src/lib/smbsrv/libmlsvc/common/netr_auth.c @@ -19,7 +19,7 @@ * CDDL HEADER END */ /* - * Copyright 2007 Sun Microsystems, Inc. All rights reserved. + * Copyright 2008 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -292,7 +292,6 @@ netr_gen_session_key(netr_info_t *netr_info) DWORD *client_challenge; DWORD *server_challenge; int rc; - char *machine_passwd; DWORD le_data[2]; client_challenge = (DWORD *)(uintptr_t)&netr_info->client_challenge; @@ -304,20 +303,15 @@ netr_gen_session_key(netr_info_t *netr_info) * the appropriate password but it isn't working yet. So we * always use the default one for now. */ - smb_config_rdlock(); - machine_passwd = smb_config_getstr(SMB_CI_MACHINE_PASSWD); + bzero(netr_info->password, sizeof (netr_info->password)); + rc = smb_config_getstr(SMB_CI_MACHINE_PASSWD, + (char *)netr_info->password, sizeof (netr_info->password)); - if (!machine_passwd || *machine_passwd == 0) { - smb_config_unlock(); + if ((rc != SMBD_SMF_OK) || *netr_info->password == '\0') { return (-1); } - bzero(netr_info->password, sizeof (netr_info->password)); - (void) strlcpy((char *)netr_info->password, (char *)machine_passwd, - sizeof (netr_info->password)); - - rc = smb_auth_ntlm_hash((char *)machine_passwd, md4hash); - smb_config_unlock(); + rc = smb_auth_ntlm_hash((char *)netr_info->password, md4hash); if (rc != SMBAUTH_SUCCESS) return (SMBAUTH_FAILURE); |