From: Ralph Boehme Date: Sun, 24 Aug 2025 06:45:39 +0000 (+0200) Subject: smbd: fix handing of oplock_request and INTERNAL_OPEN_ONLY X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=91b1511c3e537ec8757228c81ea1c9c9772c8d94;p=thirdparty%2Fsamba.git smbd: fix handing of oplock_request and INTERNAL_OPEN_ONLY Avoid overwriting INTERNAL_OPEN_ONLY in oplock_request and fix setting oplock_request to INTERNAL_OPEN_ONLY. Signed-off-by: Ralph Boehme Reviewed-by: Volker Lendecke --- diff --git a/source3/smbd/open.c b/source3/smbd/open.c index e898829c52c..b0a080fabf2 100644 --- a/source3/smbd/open.c +++ b/source3/smbd/open.c @@ -3816,7 +3816,7 @@ static NTSTATUS open_file_ntcreate(connection_struct *conn, * which adds FILE_WRITE_DATA to open_access_mask. */ if (is_oplock_stat_open(open_access_mask) && lease == NULL) { - oplock_request = NO_OPLOCK; + oplock_request &= SAMBA_PRIVATE_OPLOCK_MASK; } } @@ -5163,7 +5163,7 @@ static NTSTATUS open_directory(connection_struct *conn, /* * No oplocks on directories, only leases */ - oplock_request = NO_OPLOCK; + oplock_request &= SAMBA_PRIVATE_OPLOCK_MASK; } lck_state = (struct open_ntcreate_lock_state) { @@ -6169,7 +6169,7 @@ static NTSTATUS create_file_unixpath(connection_struct *conn, } if (req == NULL) { - oplock_request |= INTERNAL_OPEN_ONLY; + oplock_request = INTERNAL_OPEN_ONLY; } if (lease != NULL) {