summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libcli/auth/ntlm_check.c24
1 files changed, 13 insertions, 11 deletions
diff --git a/libcli/auth/ntlm_check.c b/libcli/auth/ntlm_check.c
index 3e00901b166..11d75b31010 100644
--- a/libcli/auth/ntlm_check.c
+++ b/libcli/auth/ntlm_check.c
@@ -37,6 +37,7 @@ static bool smb_pwd_check_ntlmv1(TALLOC_CTX *mem_ctx,
/* Finish the encryption of part_passwd. */
uint8_t p24[24];
int rc;
+ bool ok;
if (part_passwd == NULL) {
DEBUG(10,("No password set - DISALLOWING access\n"));
@@ -71,18 +72,19 @@ static bool smb_pwd_check_ntlmv1(TALLOC_CTX *mem_ctx,
DEBUGADD(100,("Value from encryption was |\n"));
dump_data(100, p24, 24);
#endif
- if (memcmp(p24, nt_response->data, 24) == 0) {
- if (user_sess_key != NULL) {
- *user_sess_key = data_blob_talloc(mem_ctx, NULL, 16);
- if (user_sess_key->data == NULL) {
- DBG_ERR("data_blob_talloc failed\n");
- return false;
- }
- SMBsesskeygen_ntv1(part_passwd, user_sess_key->data);
+ ok = (memcmp(p24, nt_response->data, 24) == 0);
+ if (!ok) {
+ return false;
+ }
+ if (user_sess_key != NULL) {
+ *user_sess_key = data_blob_talloc(mem_ctx, NULL, 16);
+ if (user_sess_key->data == NULL) {
+ DBG_ERR("data_blob_talloc failed\n");
+ return false;
}
- return true;
- }
- return false;
+ SMBsesskeygen_ntv1(part_passwd, user_sess_key->data);
+ }
+ return true;
}
/****************************************************************************