}
done:
+ if (S_ISLNK(smb_fname->st.st_ex_mode) &&
+ !(ucf_flags & UCF_LCOMP_LNK_OK)) {
+ status = NT_STATUS_STOPPED_ON_SYMLINK;
+ *_symlink_err = symlink_err;
+ goto fail;
+ }
+
*_dirfsp = smb_dirname->fsp;
*_smb_fname = smb_fname;
*_symlink_err = symlink_err;
_smb_fname,
&symlink_err);
- if (NT_STATUS_IS_OK(status) && S_ISLNK((*_smb_fname)->st.st_ex_mode)) {
- /*
- * lcomp is a symlink
- */
- if (ucf_flags & UCF_LCOMP_LNK_OK) {
- TALLOC_FREE(symlink_err);
- return NT_STATUS_OK;
- }
- close_file_free(NULL, _dirfsp, ERROR_CLOSE);
- status = NT_STATUS_STOPPED_ON_SYMLINK;
- }
-
if (!NT_STATUS_EQUAL(status, NT_STATUS_STOPPED_ON_SYMLINK)) {
return status;
}