From: Ralph Boehme Date: Mon, 21 Oct 2024 10:51:20 +0000 (+0200) Subject: libcli/smb: ignore lease_flags and lease_duration for leasev1 in smb2_lease_pull() X-Git-Tag: tdb-1.4.13~689 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f30cdb0c52a99f79afa9af5a71262dc2a9744dc6;p=thirdparty%2Fsamba.git libcli/smb: ignore lease_flags and lease_duration for leasev1 in smb2_lease_pull() MS-SMB2 2.2.13.2.8 SMB2_CREATE_REQUEST_LEASE: LeaseFlags (4 bytes): This field MUST NOT be used and MUST be reserved. The client MUST set this to 0, and the server MUST ignore it on receipt. LeaseDuration (8 bytes): This field MUST NOT be used and MUST be reserved. The client MUST set this to 0, and the server MUST ignore it on receipt. So let's really, really ignore it. Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher --- diff --git a/libcli/smb/smb2_lease.c b/libcli/smb/smb2_lease.c index d3d6a4926b9..630fd3943cc 100644 --- a/libcli/smb/smb2_lease.c +++ b/libcli/smb/smb2_lease.c @@ -46,8 +46,6 @@ ssize_t smb2_lease_pull(const uint8_t *buf, size_t len, memcpy(&lease->lease_key, buf, 16); lease->lease_state = IVAL(buf, 16); - lease->lease_flags = IVAL(buf, 20); - lease->lease_duration = BVAL(buf, 24); lease->lease_version = version; switch (version) { @@ -55,6 +53,8 @@ ssize_t smb2_lease_pull(const uint8_t *buf, size_t len, break; case 2: memcpy(&lease->parent_lease_key, buf+32, 16); + lease->lease_flags = IVAL(buf, 20); + lease->lease_duration = BVAL(buf, 24); lease->lease_epoch = SVAL(buf, 48); break; }