summaryrefslogtreecommitdiff
path: root/source4/auth/ntlmssp/ntlmssp.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/auth/ntlmssp/ntlmssp.c')
-rw-r--r--source4/auth/ntlmssp/ntlmssp.c27
1 files changed, 19 insertions, 8 deletions
diff --git a/source4/auth/ntlmssp/ntlmssp.c b/source4/auth/ntlmssp/ntlmssp.c
index f52d02dceb..dd3ba6e2e9 100644
--- a/source4/auth/ntlmssp/ntlmssp.c
+++ b/source4/auth/ntlmssp/ntlmssp.c
@@ -380,18 +380,29 @@ static bool gensec_ntlmssp_have_feature(struct gensec_security *gensec_security,
NTSTATUS gensec_ntlmssp_start(struct gensec_security *gensec_security)
{
- struct gensec_ntlmssp_state *gensec_ntlmssp_state;
-
- gensec_ntlmssp_state = talloc_zero(gensec_security, struct gensec_ntlmssp_state);
- if (!gensec_ntlmssp_state) {
+ struct gensec_ntlmssp_context *gensec_ntlmssp;
+ struct gensec_ntlmssp_state *ntlmssp_state;
+
+ gensec_ntlmssp = talloc_zero(gensec_security,
+ struct gensec_ntlmssp_context);
+ if (!gensec_ntlmssp) {
return NT_STATUS_NO_MEMORY;
}
- gensec_ntlmssp_state->gensec_security = gensec_security;
- gensec_ntlmssp_state->auth_context = NULL;
- gensec_ntlmssp_state->server_info = NULL;
+ gensec_ntlmssp->gensec_security = gensec_security;
+
+ ntlmssp_state = talloc_zero(gensec_ntlmssp,
+ struct gensec_ntlmssp_state);
+ if (!ntlmssp_state) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ ntlmssp_state->gensec_security = gensec_security;
+ ntlmssp_state->callback_private = gensec_ntlmssp;
+
+ gensec_ntlmssp->ntlmssp_state = ntlmssp_state;
- gensec_security->private_data = gensec_ntlmssp_state;
+ gensec_security->private_data = ntlmssp_state;
return NT_STATUS_OK;
}