]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3: VFS: default. Ensure read_dfs_pathat() returns stat info.
authorJeremy Allison <jra@samba.org>
Sat, 30 May 2020 00:56:58 +0000 (17:56 -0700)
committerRalph Boehme <slow@samba.org>
Wed, 3 Jun 2020 06:19:21 +0000 (06:19 +0000)
Remove the knownfail.d/msdfs-attr file.

Everything now passes.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=14391

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
Autobuild-User(master): Ralph Böhme <slow@samba.org>
Autobuild-Date(master): Wed Jun  3 06:19:21 UTC 2020 on sn-devel-184

selftest/knownfail.d/msdfs-attr [deleted file]
source3/modules/vfs_default.c

diff --git a/selftest/knownfail.d/msdfs-attr b/selftest/knownfail.d/msdfs-attr
deleted file mode 100644 (file)
index a8a77ec..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-samba3.smbtorture_s3.smb2.MSDFS-ATTRIBUTE
-samba3.smbtorture_s3.smb1.MSDFS-ATTRIBUTE
-
index f00255914f3e654f0803e3fd9b3dda83e84db050..a4910b4882d6a4c4a2380f15166c31220a2f1ea3 100644 (file)
@@ -434,9 +434,15 @@ static NTSTATUS vfswrap_read_dfs_pathat(struct vfs_handle_struct *handle,
 #else
        char link_target_buf[7];
 #endif
+       int ret;
 
        SMB_ASSERT(dirfsp == dirfsp->conn->cwd_fsp);
 
+       if (is_named_stream(smb_fname)) {
+               status = NT_STATUS_OBJECT_NAME_NOT_FOUND;
+               goto err;
+       }
+
        if (ppreflist == NULL && preferral_count == NULL) {
                /*
                 * We're only checking if this is a DFS
@@ -485,6 +491,14 @@ static NTSTATUS vfswrap_read_dfs_pathat(struct vfs_handle_struct *handle,
                goto err;
        }
 
+       ret = sys_lstat(smb_fname->base_name,
+                       &smb_fname->st,
+                       lp_fake_directory_create_times(SNUM(handle->conn)));
+       if (ret < 0) {
+               status = map_nt_error_from_unix(errno);
+               goto err;
+       }
+
        if (ppreflist == NULL && preferral_count == NULL) {
                /* Early return for checking if this is a DFS link. */
                return NT_STATUS_OK;