From f30cdb0c52a99f79afa9af5a71262dc2a9744dc6 Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Mon, 21 Oct 2024 12:51:20 +0200 Subject: [PATCH] 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 --- libcli/smb/smb2_lease.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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; } -- 2.47.3