]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
smbd: set fsp->fsp_flags.can_write to false for access to previous-versions
authorRalph Boehme <slow@samba.org>
Wed, 20 Dec 2023 17:03:22 +0000 (18:03 +0100)
committerRalph Boehme <slow@samba.org>
Mon, 8 Jan 2024 15:53:36 +0000 (15:53 +0000)
BUG: https://bugzilla.samba.org/show_bug.cgi?id=13688

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
source3/smbd/files.c
source3/smbd/open.c

index 48b78dc32c0a7b44bf5b2e3949bb1d5e0a73ccb1..6aad76a8a5c41f7d3bcf612beb15ce0882b55c33 100644 (file)
@@ -2448,6 +2448,9 @@ NTSTATUS dup_file_fsp(
        to->fsp_flags.can_write =
                CAN_WRITE(from->conn) &&
                ((access_mask & (FILE_WRITE_DATA | FILE_APPEND_DATA)) != 0);
+       if (from->fsp_name->twrp != 0) {
+               to->fsp_flags.can_write = false;
+       }
        to->fsp_flags.modified = from->fsp_flags.modified;
        to->fsp_flags.is_directory = from->fsp_flags.is_directory;
        to->fsp_flags.aio_write_behind = from->fsp_flags.aio_write_behind;
index d34d0354ff7aa151d3b5818f5cc3c4565a0a2657..3872403dd56b997c83b6bf2af759ec7b000c3ec1 100644 (file)
@@ -1635,6 +1635,9 @@ static NTSTATUS open_file(
        fsp->fsp_flags.can_write =
                CAN_WRITE(conn) &&
                ((access_mask & (FILE_WRITE_DATA | FILE_APPEND_DATA)) != 0);
+       if (fsp->fsp_name->twrp != 0) {
+               fsp->fsp_flags.can_write = false;
+       }
        fsp->print_file = NULL;
        fsp->fsp_flags.modified = false;
        fsp->sent_oplock_break = NO_BREAK_SENT;