From: Andrew Walker Date: Tue, 8 Dec 2020 15:36:10 +0000 (-0500) Subject: s3:smbd:trans2.c - add twrp to tmp smb_fname in smbd_do_qfsinfo X-Git-Tag: samba-4.14.0rc1~424 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7a077f152aa3e1e09b4228ae24780fa613540a68;p=thirdparty%2Fsamba.git s3:smbd:trans2.c - add twrp to tmp smb_fname in smbd_do_qfsinfo Preserve VSS-related timestamp in temporary smb_filename before calling vfs_stat_fn() in smbd_do_qfsinfo. Otherwise, we can fail here on smb2_getinfo requests if file does not exist outside of shadow copy path. Signed-off-by: Andrew Walker Reviewed-by: Ralph Boehme Reviewed-by: Noel Power Autobuild-User(master): Noel Power Autobuild-Date(master): Tue Dec 15 15:32:18 UTC 2020 on sn-devel-184 --- diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c index f6e261ed658..5dac5f0f265 100644 --- a/source3/smbd/trans2.c +++ b/source3/smbd/trans2.c @@ -3616,8 +3616,11 @@ NTSTATUS smbd_do_qfsinfo(struct smbXsrv_connection *xconn, DEBUG(3,("smbd_do_qfsinfo: level = %d\n", info_level)); - ZERO_STRUCT(smb_fname); - smb_fname.base_name = discard_const_p(char, filename); + smb_fname = (struct smb_filename) { + .base_name = discard_const_p(char, filename), + .flags = fname ? fname->flags : 0, + .twrp = fname ? fname->twrp : 0, + }; if(info_level != SMB_FS_QUOTA_INFORMATION && SMB_VFS_STAT(conn, &smb_fname) != 0) {