From bfa5f1780990e4f763f0214fb660c64c53188e65 Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Wed, 20 Dec 2023 18:03:22 +0100 Subject: [PATCH] smbd: set fsp->fsp_flags.can_write to false for access to previous-versions BUG: https://bugzilla.samba.org/show_bug.cgi?id=13688 Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher (cherry picked from commit ee3035218df4cfd68b6aab6825c78f2b85234c6c) --- source3/smbd/files.c | 3 +++ source3/smbd/open.c | 3 +++ 2 files changed, 6 insertions(+) diff --git a/source3/smbd/files.c b/source3/smbd/files.c index b8640fd6677..02cfc424822 100644 --- a/source3/smbd/files.c +++ b/source3/smbd/files.c @@ -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; diff --git a/source3/smbd/open.c b/source3/smbd/open.c index 3581c4b9173..8b08c9ad5dc 100644 --- a/source3/smbd/open.c +++ b/source3/smbd/open.c @@ -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; -- 2.11.4.GIT