]> 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)
committerJule Anger <janger@samba.org>
Tue, 9 Jan 2024 12:13:13 +0000 (12:13 +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>
(cherry picked from commit ee3035218df4cfd68b6aab6825c78f2b85234c6c)

source3/smbd/files.c
source3/smbd/open.c

index b8640fd6677049ced1c1dd3afd354b1a3e0c36a5..02cfc4248222e7a29e0860bc5df3e5a6f75e9a2c 100644 (file)
@@ -2148,6 +2148,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 3581c4b917312086a39620064b8925e80660b7a5..8b08c9ad5dcc8e3f0d7ed7876bc72aafffaa532b 100644 (file)
@@ -1678,6 +1678,9 @@ static NTSTATUS open_file(struct smb_request *req,
        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;