1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-08 21:18:16 +03:00

libcli/smb: Allow smb2cli_validate_negotiate_info_done() to ignore NT_STATUS_INVALID_PARAMETER.

This can be returned from NetApp Ontap 7.3.7 SMB server
implementations. Now we have ensured smb2_signing_check_pdu()
cannot return NT_STATUS_INVALID_PARAMETER on a signing error
it's safe to check this error code here. Windows 10
clients ignore this error from the NetApp.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=14607

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
This commit is contained in:
Jeremy Allison 2021-01-06 09:03:05 -08:00 committed by Volker Lendecke
parent fdcdfceefd
commit 0abb5ca6b9

View File

@ -5428,6 +5428,18 @@ static void smb2cli_validate_negotiate_info_done(struct tevent_req *subreq)
&state->out_input_buffer,
&state->out_output_buffer);
TALLOC_FREE(subreq);
/*
* This response must be signed correctly for
* these "normal" error codes to be processed.
* If the packet wasn't signed correctly we will get
* NT_STATUS_ACCESS_DENIED or NT_STATUS_HMAC_NOT_SUPPORTED,
* or NT_STATUS_INVALID_NETWORK_RESPONSE
* from smb2_signing_check_pdu().
*
* We must never ignore the above errors here.
*/
if (NT_STATUS_EQUAL(status, NT_STATUS_FILE_CLOSED)) {
/*
* The response was signed, but not supported
@ -5473,6 +5485,19 @@ static void smb2cli_validate_negotiate_info_done(struct tevent_req *subreq)
tevent_req_done(req);
return;
}
if (NT_STATUS_EQUAL(status, NT_STATUS_INVALID_PARAMETER)) {
/*
* The response was signed, but not supported
*
* This might be returned by NetApp Ontap 7.3.7 SMB server
* implementations.
*
* BUG: https://bugzilla.samba.org/show_bug.cgi?id=14607
*
*/
tevent_req_done(req);
return;
}
if (tevent_req_nterror(req, status)) {
return;
}