From: Andreas Schneider Date: Tue, 11 Jun 2019 13:39:24 +0000 (+0200) Subject: libcli:smb: Fix signing with multichannel X-Git-Tag: ldb-2.0.5~405 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1817db965dc0caf55e4308fa4d9203ab4381dc90;p=thirdparty%2Fsamba.git libcli:smb: Fix signing with multichannel Pair-Programmed-With: Stefan Metzmacher Signed-off-by: Andreas Schneider Signed-off-by: Stefan Metzmacher Reviewed-by: Stefan Metzmacher --- diff --git a/libcli/smb/smbXcli_base.c b/libcli/smb/smbXcli_base.c index a82146a60f4..e916a17e07a 100644 --- a/libcli/smb/smbXcli_base.c +++ b/libcli/smb/smbXcli_base.c @@ -3282,7 +3282,8 @@ skip_credits: * If it is a channel binding, we already have the main * signing key and try that one. */ - if (!smb2_signing_key_valid(signing_key)) { + if (signing_key != NULL && + !smb2_signing_key_valid(signing_key)) { signing_key = state->session->smb2->signing_key; } @@ -3290,7 +3291,8 @@ skip_credits: * If we do not have any session key yet, we skip the * signing of SMB2_OP_SESSSETUP requests. */ - if (!smb2_signing_key_valid(signing_key)) { + if (signing_key != NULL && + !smb2_signing_key_valid(signing_key)) { signing_key = NULL; } } @@ -3789,12 +3791,14 @@ static NTSTATUS smb2cli_conn_dispatch_incoming(struct smbXcli_conn *conn, * we try the main signing key, if it is not * the final response. */ - if (!smb2_signing_key_valid(signing_key) && + if (signing_key != NULL && + !smb2_signing_key_valid(signing_key) && !NT_STATUS_IS_OK(status)) { signing_key = session->smb2->signing_key; } - if (!smb2_signing_key_valid(signing_key)) { + if (signing_key != NULL && + !smb2_signing_key_valid(signing_key)) { /* * If we do not have a session key to * verify the signature, we defer the