From 0d95cee58f80e46636fa4b826d248c9ce9983c9b Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Mon, 12 Jul 2010 14:26:34 +1000 Subject: s3:auth Change auth_ntlmssp_server_info API to return NTSTATUS This fixes a bug where register_existing_vuid() could be called with a NULL server_info if the alloction failed. Andrew Bartlett Signed-off-by: Andrew Tridgell --- source3/auth/auth_ntlmssp.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'source3/auth/auth_ntlmssp.c') diff --git a/source3/auth/auth_ntlmssp.c b/source3/auth/auth_ntlmssp.c index df4666aaee..ba7efbf48e 100644 --- a/source3/auth/auth_ntlmssp.c +++ b/source3/auth/auth_ntlmssp.c @@ -84,8 +84,9 @@ void auth_ntlmssp_want_seal(struct auth_ntlmssp_state *auth_ntlmssp_state) } -struct auth_serversupplied_info *auth_ntlmssp_server_info(TALLOC_CTX *mem_ctx, - struct auth_ntlmssp_state *auth_ntlmssp_state) +NTSTATUS auth_ntlmssp_server_info(TALLOC_CTX *mem_ctx, + struct auth_ntlmssp_state *auth_ntlmssp_state, + struct auth_serversupplied_info **_server_info) { struct auth_serversupplied_info *server_info = auth_ntlmssp_state->server_info; data_blob_free(&server_info->user_session_key); @@ -95,10 +96,12 @@ struct auth_serversupplied_info *auth_ntlmssp_server_info(TALLOC_CTX *mem_ctx, auth_ntlmssp_state->ntlmssp_state->session_key.data, auth_ntlmssp_state->ntlmssp_state->session_key.length); if (auth_ntlmssp_state->ntlmssp_state->session_key.length && !server_info->user_session_key.data) { - return NULL; + *_server_info = NULL; + return NT_STATUS_NO_MEMORY; } auth_ntlmssp_state->server_info = NULL; - return talloc_steal(mem_ctx, server_info); + *_server_info = talloc_steal(mem_ctx, server_info); + return NT_STATUS_OK; } struct ntlmssp_state *auth_ntlmssp_get_ntlmssp_state(struct auth_ntlmssp_state *auth_ntlmssp_state) -- cgit