From: Jeremy Allison Date: Fri, 16 Dec 2011 23:53:46 +0000 (-0800) Subject: Fix bug #8664 - Renaming a symlink fails if the symlink target is outside of the... X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6e77eac8f21925460e3b1946c2c22f6eff296322;p=thirdparty%2Fsamba.git Fix bug #8664 - Renaming a symlink fails if the symlink target is outside of the share. --- 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);