mirror of
https://github.com/samba-team/samba.git
synced 2025-01-10 01:18:15 +03:00
smbd: Revert "smbd: Simplify filename_convert_dirfsp()"
This reverts commit bd30c9c128
.
While this does indeed slightly simplify code, it simplifies too much: Soon we
will need filename_convert_dirfsp_nosymlink raw without looking at
UCF_LCOMP_LNK_OK. So in hindsight this went too far.
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
This commit is contained in:
parent
ec64f81df9
commit
76f5156906
@ -1041,13 +1041,6 @@ static NTSTATUS filename_convert_dirfsp_nosymlink(
|
|||||||
}
|
}
|
||||||
|
|
||||||
done:
|
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;
|
*_dirfsp = smb_dirname->fsp;
|
||||||
*_smb_fname = smb_fname;
|
*_smb_fname = smb_fname;
|
||||||
*_symlink_err = symlink_err;
|
*_symlink_err = symlink_err;
|
||||||
@ -1109,6 +1102,18 @@ next:
|
|||||||
_smb_fname_rel,
|
_smb_fname_rel,
|
||||||
&symlink_err);
|
&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)) {
|
if (!NT_STATUS_EQUAL(status, NT_STATUS_STOPPED_ON_SYMLINK)) {
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user