summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnoop C S <anoopcs@samba.org>2020-11-12 20:27:24 +0530
committerKarolin Seeger <kseeger@samba.org>2020-11-19 14:09:43 +0000
commitb3665f70109b634564974de966d255807c0547f0 (patch)
tree7236767df49b9a7a9af3bdb50d6a3eb27860a9e5
parent58eaf85bd924f4f9264d677486c0122a5a2c9f9f (diff)
downloadsamba-b3665f70109b634564974de966d255807c0547f0.tar.gz
vfs_shadow_copy2: Preserve all open flags assuming ROFS
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 <anoopcs@samba.org> Reviewed-by: Ralph Boehme <slow@samba.org> Autobuild-User(master): Ralph Böhme <slow@samba.org> Autobuild-Date(master): Thu Nov 12 17:23:19 UTC 2020 on sn-devel-184 (cherry picked from commit e9e06a11daf036abf7a7022ebc8eaefde178aa52) Autobuild-User(v4-12-test): Karolin Seeger <kseeger@samba.org> Autobuild-Date(v4-12-test): Thu Nov 19 14:09:43 UTC 2020 on sn-devel-184
-rw-r--r--source3/modules/vfs_shadow_copy2.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/source3/modules/vfs_shadow_copy2.c b/source3/modules/vfs_shadow_copy2.c
index 1957015931b..dc4176e25df 100644
--- a/source3/modules/vfs_shadow_copy2.c
+++ b/source3/modules/vfs_shadow_copy2.c
@@ -1462,7 +1462,7 @@ static int shadow_copy2_open(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_OPEN(handle, smb_fname, fsp, flags, mode);
}
@@ -1483,7 +1483,7 @@ static int shadow_copy2_open(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_OPEN(handle, smb_fname, fsp, flags, mode);
if (ret == -1) {