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:
parent
39c0d2b666
commit
4c6c71e137
@ -191,8 +191,25 @@ static NTSTATUS smb2cli_ioctl_parse_buffer(uint32_t dyn_offset,
|
||||
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);
|
||||
if (buffer_offset != min_offset) {
|
||||
if (buffer_offset < min_offset) {
|
||||
return NT_STATUS_INVALID_NETWORK_RESPONSE;
|
||||
}
|
||||
|
||||
|
@ -1 +0,0 @@
|
||||
^samba3.smb2.ioctl.*bug14607.nt4_dc
|
Loading…
Reference in New Issue
Block a user