1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-03 13:47:25 +03:00

libcli:smb: Fix signing with multichannel

Pair-Programmed-With: Stefan Metzmacher <metze@samba.org>
Signed-off-by: Andreas Schneider <asn@samba.org>
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
This commit is contained in:
Andreas Schneider 2019-06-11 15:39:24 +02:00 committed by Andreas Schneider
parent 4646698f1b
commit 1817db965d

View File

@ -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