From: Jeremy Allison Date: Thu, 26 Mar 2020 22:51:18 +0000 (-0700) Subject: s3: smbd: Use get_original_lcomp() inside reply_mv(). X-Git-Tag: ldb-2.2.0~1149 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=aa80e9732f84626c36b8d7dce4cdd28c1d0be2e9;p=thirdparty%2Fsamba.git s3: smbd: Use get_original_lcomp() inside reply_mv(). Pass to rename_internals(). Removes one more use of the struct member original_lcomp. Signed-off-by: Jeremy Allison Reviewed-by: Ralph Boehme --- diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c index 826387b9914..eee9c986db6 100644 --- a/source3/smbd/reply.c +++ b/source3/smbd/reply.c @@ -8290,6 +8290,7 @@ 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; + const char *dst_original_lcomp = NULL; uint32_t src_ucf_flags = ucf_flags_from_smb_request(req) | (req->posix_pathnames ? UCF_UNIX_NAME_LOOKUP : @@ -8373,6 +8374,16 @@ void reply_mv(struct smb_request *req) goto out; } + /* Get the last component of the destination for rename_internals(). */ + dst_original_lcomp = get_original_lcomp(ctx, + conn, + newname, + dst_ucf_flags); + if (dst_original_lcomp == NULL) { + reply_nterror(req, NT_STATUS_NO_MEMORY); + goto out; + } + if (stream_rename) { /* smb_fname_dst->base_name must be the same as smb_fname_src->base_name. */ @@ -8393,7 +8404,7 @@ void reply_mv(struct smb_request *req) req, smb_fname_src, smb_fname_dst, - smb_fname_dst->original_lcomp, + dst_original_lcomp, attrs, false, src_has_wcard,