diff options
author | Ralph Boehme <slow@samba.org> | 2018-05-26 18:32:21 +0200 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2018-07-12 13:10:26 +0200 |
commit | 425f513e98a9446e487dd5cd5d9de7ee58404bff (patch) | |
tree | 6d86e7ed4541321e6f8b394d29db349521c92c7d | |
parent | dd78d9a602e2a088b3a3b7ce0f0a9520ce926268 (diff) | |
download | samba-425f513e98a9446e487dd5cd5d9de7ee58404bff.tar.gz |
s3:smbd: don't allow renaming basefile if streams are open
Bug: https://bugzilla.samba.org/show_bug.cgi?id=13451
Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
(cherry picked from commit 465b7d07e5db787c3d6330371e5e42ecbb1b57b9)
-rw-r--r-- | selftest/knownfail.d/samba3.smb2.streams | 2 | ||||
-rw-r--r-- | selftest/knownfail.d/samba3.vfs.fruit | 3 | ||||
-rw-r--r-- | source3/smbd/reply.c | 4 |
3 files changed, 4 insertions, 5 deletions
diff --git a/selftest/knownfail.d/samba3.smb2.streams b/selftest/knownfail.d/samba3.smb2.streams deleted file mode 100644 index 26d40a67bda..00000000000 --- a/selftest/knownfail.d/samba3.smb2.streams +++ /dev/null @@ -1,2 +0,0 @@ -samba3.smb2.streams.basefile-rename-with-open-stream\(.*\) -samba3.smb2.streams streams_xattr.basefile-rename-with-open-stream\(nt4_dc\) diff --git a/selftest/knownfail.d/samba3.vfs.fruit b/selftest/knownfail.d/samba3.vfs.fruit index bf97dbc5822..8df25bccb79 100644 --- a/selftest/knownfail.d/samba3.vfs.fruit +++ b/selftest/knownfail.d/samba3.vfs.fruit @@ -1,4 +1 @@ ^samba3.vfs.fruit streams_depot.OS X AppleDouble file conversion\(nt4_dc\) -^samba3.vfs.fruit metadata_netatalk.read open rsrc after rename\(nt4_dc\) -^samba3.vfs.fruit metadata_stream.read open rsrc after rename\(nt4_dc\) -^samba3.vfs.fruit streams_depot.read open rsrc after rename\(nt4_dc\) diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c index 623f83b1250..2b5bb8f1ed6 100644 --- a/source3/smbd/reply.c +++ b/source3/smbd/reply.c @@ -6642,6 +6642,10 @@ NTSTATUS rename_internals_fsp(connection_struct *conn, return status; } + if (file_has_open_streams(fsp)) { + return NT_STATUS_ACCESS_DENIED; + } + /* Make a copy of the dst smb_fname structs */ smb_fname_dst = cp_smb_filename(ctx, smb_fname_dst_in); |