diff options
author | Anoop C S <anoopcs@samba.org> | 2020-11-12 20:27:24 +0530 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2020-11-19 14:09:43 +0000 |
commit | b3665f70109b634564974de966d255807c0547f0 (patch) | |
tree | 7236767df49b9a7a9af3bdb50d6a3eb27860a9e5 | |
parent | 58eaf85bd924f4f9264d677486c0122a5a2c9f9f (diff) | |
download | samba-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.c | 4 |
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) { |