From 00dd1a8bf8b081cb69a8b1c26af5c70e7ff58088 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Wed, 29 May 2019 14:25:57 +0200 Subject: [PATCH] libcli:auth: Return NTSTATUS for netlogon_creds_encrypt_samlogon_validation() Signed-off-by: Andreas Schneider Reviewed-by: Andrew Bartlett --- libcli/auth/credentials.c | 8 +++++--- libcli/auth/proto.h | 6 +++--- source3/rpc_server/netlogon/srv_netlog_nt.c | 9 +++++---- source4/rpc_server/netlogon/dcerpc_netlogon.c | 11 ++++++++--- 4 files changed, 21 insertions(+), 13 deletions(-) diff --git a/libcli/auth/credentials.c b/libcli/auth/credentials.c index 1a8e9ad10f0..545d3c6956c 100644 --- a/libcli/auth/credentials.c +++ b/libcli/auth/credentials.c @@ -688,12 +688,14 @@ void netlogon_creds_decrypt_samlogon_validation(struct netlogon_creds_Credential validation, false); } -void netlogon_creds_encrypt_samlogon_validation(struct netlogon_creds_CredentialState *creds, - uint16_t validation_level, - union netr_Validation *validation) +NTSTATUS netlogon_creds_encrypt_samlogon_validation(struct netlogon_creds_CredentialState *creds, + uint16_t validation_level, + union netr_Validation *validation) { netlogon_creds_crypt_samlogon_validation(creds, validation_level, validation, true); + + return NT_STATUS_OK; } static void netlogon_creds_crypt_samlogon_logon(struct netlogon_creds_CredentialState *creds, diff --git a/libcli/auth/proto.h b/libcli/auth/proto.h index 47e8b96fb21..00033b9ce55 100644 --- a/libcli/auth/proto.h +++ b/libcli/auth/proto.h @@ -62,9 +62,9 @@ NTSTATUS netlogon_creds_server_step_check(struct netlogon_creds_CredentialState void netlogon_creds_decrypt_samlogon_validation(struct netlogon_creds_CredentialState *creds, uint16_t validation_level, union netr_Validation *validation); -void netlogon_creds_encrypt_samlogon_validation(struct netlogon_creds_CredentialState *creds, - uint16_t validation_level, - union netr_Validation *validation); +NTSTATUS netlogon_creds_encrypt_samlogon_validation(struct netlogon_creds_CredentialState *creds, + uint16_t validation_level, + union netr_Validation *validation); void netlogon_creds_decrypt_samlogon_logon(struct netlogon_creds_CredentialState *creds, enum netr_LogonInfoClass level, union netr_LogonLevel *logon); diff --git a/source3/rpc_server/netlogon/srv_netlog_nt.c b/source3/rpc_server/netlogon/srv_netlog_nt.c index 1bc5d62f979..95639eb7d3c 100644 --- a/source3/rpc_server/netlogon/srv_netlog_nt.c +++ b/source3/rpc_server/netlogon/srv_netlog_nt.c @@ -1752,10 +1752,11 @@ static NTSTATUS _netr_LogonSamLogon_base(struct pipes_struct *p, return status; } - netlogon_creds_encrypt_samlogon_validation(creds, - r->in.validation_level, - r->out.validation); - return NT_STATUS_OK; + status = netlogon_creds_encrypt_samlogon_validation(creds, + r->in.validation_level, + r->out.validation); + + return status; } /**************************************************************** diff --git a/source4/rpc_server/netlogon/dcerpc_netlogon.c b/source4/rpc_server/netlogon/dcerpc_netlogon.c index 909cfeaf5a3..822a70575bb 100644 --- a/source4/rpc_server/netlogon/dcerpc_netlogon.c +++ b/source4/rpc_server/netlogon/dcerpc_netlogon.c @@ -1262,9 +1262,14 @@ static void dcesrv_netr_LogonSamLogon_base_reply( NTSTATUS status; if (NT_STATUS_IS_OK(r->out.result)) { - netlogon_creds_encrypt_samlogon_validation(state->creds, - r->in.validation_level, - r->out.validation); + status = netlogon_creds_encrypt_samlogon_validation(state->creds, + r->in.validation_level, + r->out.validation); + if (!NT_STATUS_IS_OK(status)) { + DBG_ERR("netlogon_creds_encrypt_samlogon_validation() " + "failed - %s\n", + nt_errstr(status)); + } } if (state->_r.lslex != NULL) { -- 2.11.4.GIT