summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2022-03-18 12:27:53 -0700
committerJule Anger <janger@samba.org>2022-04-11 08:32:10 +0000
commitdf48c0050136e58eb8badd9ca9cdc7f09202fb92 (patch)
treefd46ee077af02ab8a99660a17f3abe905dbd5bcb
parent3905cfe754c9a73fc40644e305732b53b13f0694 (diff)
downloadsamba-df48c0050136e58eb8badd9ca9cdc7f09202fb92.tar.gz
s3: smbd: call_trans2setfilepathinfo(). 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 6a25b6997ff9f99fde309db1e163d16cd70ca5f5)
-rw-r--r--source3/smbd/trans2.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c
index b5d5d69744f..a87a9b05674 100644
--- a/source3/smbd/trans2.c
+++ b/source3/smbd/trans2.c
@@ -9377,11 +9377,12 @@ static void call_trans2setfilepathinfo(connection_struct *conn,
/*
* Original code - this is an open file.
*/
- if (SMB_VFS_FSTAT(fsp, &smb_fname->st) != 0) {
+ status = vfs_stat_fsp(fsp);
+ if (!NT_STATUS_IS_OK(status)) {
DEBUG(3,("call_trans2setfilepathinfo: fstat "
"of %s failed (%s)\n", fsp_fnum_dbg(fsp),
- strerror(errno)));
- reply_nterror(req, map_nt_error_from_unix(errno));
+ nt_errstr(status)));
+ reply_nterror(req, status);
return;
}
}