diff options
Diffstat (limited to 'source4/rpc_server/dcerpc_server.c')
-rw-r--r-- | source4/rpc_server/dcerpc_server.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/source4/rpc_server/dcerpc_server.c b/source4/rpc_server/dcerpc_server.c index fd806c5289..2c0db15081 100644 --- a/source4/rpc_server/dcerpc_server.c +++ b/source4/rpc_server/dcerpc_server.c @@ -268,8 +268,9 @@ NTSTATUS dcesrv_endpoint_connect(struct dcesrv_context *dce_ctx, (*p)->cli_max_recv_frag = 0; (*p)->handles = NULL; (*p)->partial_input = data_blob(NULL, 0); - (*p)->auth_state.crypto_state = NULL; (*p)->auth_state.auth_info = NULL; + (*p)->auth_state.crypto_ctx.private_data = NULL; + (*p)->auth_state.crypto_ctx.ops = NULL; (*p)->session_key = data_blob(NULL, 0); return NT_STATUS_OK; @@ -326,7 +327,11 @@ void dcesrv_endpoint_disconnect(struct dcesrv_connection *p) while (p->handles) { dcesrv_handle_destroy(p, p->handles); } - + + if (p->auth_state.crypto_ctx.ops) { + p->auth_state.crypto_ctx.ops->end(&p->auth_state); + } + talloc_destroy(p->mem_ctx); } |