mirror of
https://github.com/samba-team/samba.git
synced 2025-02-03 13:47:25 +03:00
s3: pysmbd.c: init_files_struct(). All calls to SMB_VFS_FSTAT(fsp, &fsp->fsp_name->st) clobber fsp->fsp_name->st.st_ex_iflags.
If doing an SMB_VFS_FSTAT() returning onto the stat struct stored in the fsp, we must call vfs_stat_fsp() as this preserves the iflags. BUG: https://bugzilla.samba.org/show_bug.cgi?id=15022 Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Ralph Boehme <slow@samba.org> (cherry picked from commit c4193f11d1871051d4cce4521b1f444a083c9189)
This commit is contained in:
parent
6d66132ed2
commit
bbf4e324f7
@ -176,7 +176,6 @@ static NTSTATUS init_files_struct(TALLOC_CTX *mem_ctx,
|
||||
{
|
||||
struct smb_filename *smb_fname = NULL;
|
||||
int fd;
|
||||
int ret;
|
||||
mode_t saved_umask;
|
||||
struct files_struct *fsp;
|
||||
struct files_struct *fspcwd = NULL;
|
||||
@ -230,13 +229,13 @@ static NTSTATUS init_files_struct(TALLOC_CTX *mem_ctx,
|
||||
}
|
||||
fsp_set_fd(fsp, fd);
|
||||
|
||||
ret = SMB_VFS_FSTAT(fsp, &smb_fname->st);
|
||||
if (ret == -1) {
|
||||
status = vfs_stat_fsp(fsp);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
/* If we have an fd, this stat should succeed. */
|
||||
DEBUG(0,("Error doing fstat on open file %s (%s)\n",
|
||||
smb_fname_str_dbg(smb_fname),
|
||||
strerror(errno) ));
|
||||
return map_nt_error_from_unix(errno);
|
||||
nt_errstr(status) ));
|
||||
return status;
|
||||
}
|
||||
|
||||
fsp->file_id = vfs_file_id_from_sbuf(conn, &smb_fname->st);
|
||||
|
Loading…
x
Reference in New Issue
Block a user