From: Jeremy Allison Date: Fri, 16 Dec 2011 00:33:37 +0000 (-0800) Subject: Second part of fix for bug #8663 - deleting a symlink fails if the symlink target... X-Git-Url: http://git.samba.org/?p=kai%2Fsamba.git;a=commitdiff_plain;h=f448c0e6db1384425e78531150aa1d3f6f8bd951 Second part of fix for bug #8663 - deleting a symlink fails if the symlink target is outside of the share. Ensure we use UCF_UNIX_NAME_LOOKUP flags on filename_convert() when doing a UNIX infolevel in trans2setfilepathinfo(). --- diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c index 0126419393c..4417cb27e72 100644 --- a/source3/smbd/trans2.c +++ b/source3/smbd/trans2.c @@ -8007,6 +8007,7 @@ static void call_trans2setfilepathinfo(connection_struct *conn, } } else { char *fname = NULL; + uint32_t ucf_flags = 0; /* set path info */ if (total_params < 7) { @@ -8023,10 +8024,14 @@ static void call_trans2setfilepathinfo(connection_struct *conn, return; } + if (INFO_LEVEL_IS_UNIX(info_level)) { + ucf_flags |= UCF_UNIX_NAME_LOOKUP; + } + status = filename_convert(req, conn, req->flags2 & FLAGS2_DFS_PATHNAMES, fname, - 0, + ucf_flags, NULL, &smb_fname); if (!NT_STATUS_IS_OK(status)) {