summaryrefslogtreecommitdiff
path: root/source4
diff options
context:
space:
mode:
Diffstat (limited to 'source4')
-rw-r--r--source4/auth/ntlm_check.c7
-rw-r--r--source4/rpc_server/netlogon/dcerpc_netlogon.c5
2 files changed, 10 insertions, 2 deletions
diff --git a/source4/auth/ntlm_check.c b/source4/auth/ntlm_check.c
index e31424d808..e6a8ce681f 100644
--- a/source4/auth/ntlm_check.c
+++ b/source4/auth/ntlm_check.c
@@ -187,6 +187,13 @@ NTSTATUS ntlm_password_check(TALLOC_CTX *mem_ctx,
username));
}
+ if (lm_sess_key) {
+ *lm_sess_key = data_blob(NULL, 0);
+ }
+ if (user_sess_key) {
+ *user_sess_key = data_blob(NULL, 0);
+ }
+
if (nt_interactive_password && nt_interactive_password->length && nt_pw) {
if (nt_interactive_password->length != 16) {
DEBUG(3,("ntlm_password_check: Interactive logon: Invalid NT password length (%d) supplied for user %s\n", (int)nt_interactive_password->length,
diff --git a/source4/rpc_server/netlogon/dcerpc_netlogon.c b/source4/rpc_server/netlogon/dcerpc_netlogon.c
index 5319705e32..dcdcd7237c 100644
--- a/source4/rpc_server/netlogon/dcerpc_netlogon.c
+++ b/source4/rpc_server/netlogon/dcerpc_netlogon.c
@@ -548,11 +548,12 @@ static NTSTATUS netr_LogonSamLogonWithFlags(struct dcesrv_call_state *dce_call,
mem_ctx,
&server_info);
+ /* keep the auth_context for the life of this call */
+ talloc_steal(dce_call, auth_context);
+
if (!NT_STATUS_IS_OK(nt_status)) {
- free_auth_context(&auth_context);
return nt_status;
}
- free_auth_context(&auth_context);
sam = talloc_p(mem_ctx, struct netr_SamBaseInfo);