From 7df3ebd933cbb977a95d64ff11dbaf71a6e6cd95 Mon Sep 17 00:00:00 2001 From: Anoop C S Date: Thu, 12 Nov 2020 20:27:24 +0530 Subject: [PATCH] vfs_shadow_copy2: Preserve all open flags assuming ROFS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Instead of replacing open flags with just O_RDONLY, filter out all those flags unrelated to a Read Only File System BUG: https://bugzilla.samba.org/show_bug.cgi?id=14573 Signed-off-by: Anoop C S Reviewed-by: Ralph Boehme Autobuild-User(master): Ralph Böhme Autobuild-Date(master): Thu Nov 12 17:23:19 UTC 2020 on sn-devel-184 (cherry picked from commit e9e06a11daf036abf7a7022ebc8eaefde178aa52) --- source3/modules/vfs_shadow_copy2.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source3/modules/vfs_shadow_copy2.c b/source3/modules/vfs_shadow_copy2.c index 8ccc4dd77ec..2fed38e7e2b 100644 --- a/source3/modules/vfs_shadow_copy2.c +++ b/source3/modules/vfs_shadow_copy2.c @@ -1351,7 +1351,7 @@ static int shadow_copy2_openat(vfs_handle_struct *handle, * EINVAL which we carefully map to EROFS. In sum, this * matches Windows behaviour. */ - flags = O_RDONLY; + flags &= ~(O_WRONLY | O_RDWR | O_CREAT); } return SMB_VFS_NEXT_OPENAT(handle, dirfsp, @@ -1385,7 +1385,7 @@ static int shadow_copy2_openat(vfs_handle_struct *handle, * pwrite() syscall with EINVAL which we carefully map to EROFS. In sum, * this matches Windows behaviour. */ - flags = O_RDONLY; + flags &= ~(O_WRONLY | O_RDWR | O_CREAT); ret = SMB_VFS_NEXT_OPENAT(handle, dirfsp, -- 2.27.0