diff options
author | Jeremy Allison <jra@samba.org> | 2011-12-16 15:53:46 -0800 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2012-01-23 21:30:10 +0100 |
commit | 2dcf2267cb21e79380b8fc7f32b44463b3173cec (patch) | |
tree | 6f3286760e5ae0055c6f68ca8f1e28ded7e99526 | |
parent | 9f700b8c346380bfe5080a49bf568cd1d6cf24d3 (diff) | |
download | samba-2dcf2267cb21e79380b8fc7f32b44463b3173cec.tar.gz |
Fix bug #8664 - Renaming a symlink fails if the symlink target is outside of the share.
(cherry picked from commit 6e77eac8f21925460e3b1946c2c22f6eff296322)
-rw-r--r-- | source3/smbd/reply.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c index b86ccd3699b..c0e8a98e9af 100644 --- a/source3/smbd/reply.c +++ b/source3/smbd/reply.c @@ -6603,6 +6603,8 @@ void reply_mv(struct smb_request *req) TALLOC_CTX *ctx = talloc_tos(); struct smb_filename *smb_fname_src = NULL; struct smb_filename *smb_fname_dst = NULL; + uint32_t src_ucf_flags = lp_posix_pathnames() ? UCF_UNIX_NAME_LOOKUP : UCF_COND_ALLOW_WCARD_LCOMP; + uint32_t dst_ucf_flags = UCF_SAVE_LCOMP | (lp_posix_pathnames() ? 0 : UCF_COND_ALLOW_WCARD_LCOMP); bool stream_rename = false; START_PROFILE(SMBmv); @@ -6645,7 +6647,7 @@ void reply_mv(struct smb_request *req) conn, req->flags2 & FLAGS2_DFS_PATHNAMES, name, - UCF_COND_ALLOW_WCARD_LCOMP, + src_ucf_flags, &src_has_wcard, &smb_fname_src); @@ -6663,7 +6665,7 @@ void reply_mv(struct smb_request *req) conn, req->flags2 & FLAGS2_DFS_PATHNAMES, newname, - UCF_COND_ALLOW_WCARD_LCOMP | UCF_SAVE_LCOMP, + dst_ucf_flags, &dest_has_wcard, &smb_fname_dst); |