1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-22 13:34:15 +03:00

libcli/smb: allow unexpected padding in SMB2 IOCTL responses

A NetApp Ontap 7.3.7 SMB server add 8 padding bytes to an
offset that's already 8 byte aligned.

RN: Work around special SMB2 IOCTL response behavior of NetApp Ontap 7.3.7
BUG: https://bugzilla.samba.org/show_bug.cgi?id=14607

Pair-Programmed-With: Volker Lendecke <vl@samba.org>

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Signed-off-by: Volker Lendecke <vl@samba.org>

Autobuild-User(master): Volker Lendecke <vl@samba.org>
Autobuild-Date(master): Fri Jan 15 08:36:34 UTC 2021 on sn-devel-184
This commit is contained in:
Stefan Metzmacher 2021-01-14 17:32:15 +01:00 committed by Volker Lendecke
parent 39c0d2b666
commit 4c6c71e137
2 changed files with 18 additions and 2 deletions

View File

@ -191,8 +191,25 @@ static NTSTATUS smb2cli_ioctl_parse_buffer(uint32_t dyn_offset,
return NT_STATUS_OK; return NT_STATUS_OK;
} }
if ((buffer_offset % 8) != 0) {
/*
* The offset needs to be 8 byte aligned.
*/
return NT_STATUS_INVALID_NETWORK_RESPONSE;
}
/*
* We used to enforce buffer_offset to be
* an exact match of the expected minimum,
* but the NetApp Ontap 7.3.7 SMB server
* gets the padding wrong and aligns the
* input_buffer_offset by a value of 8.
*
* So we just enforce that the offset is
* not lower than the expected value.
*/
SMB_ASSERT(min_offset >= dyn_offset); SMB_ASSERT(min_offset >= dyn_offset);
if (buffer_offset != min_offset) { if (buffer_offset < min_offset) {
return NT_STATUS_INVALID_NETWORK_RESPONSE; return NT_STATUS_INVALID_NETWORK_RESPONSE;
} }

View File

@ -1 +0,0 @@
^samba3.smb2.ioctl.*bug14607.nt4_dc