torture: Create a base_fsp for a named stream in vfstest
authorVolker Lendecke <vl@samba.org>
Tue, 22 Feb 2022 12:15:02 +0000 (13:15 +0100)
committerJeremy Allison <jra@samba.org>
Fri, 1 Apr 2022 20:19:29 +0000 (20:19 +0000)
This will enable a simplification in the stream-handling openat vfs
routines.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/torture/cmd_vfs.c

index 5346662afa14c64dae72536a049ed9e896dedf5f..7a23f7bf5a2333af8ce50c7f999189da44252627 100644 (file)
@@ -405,6 +405,22 @@ static NTSTATUS cmd_open(struct vfs_state *vfs, TALLOC_CTX *mem_ctx, int argc, c
                goto fail;
        }
 
+       if (is_named_stream(smb_fname)) {
+               struct smb_filename *base_name = NULL;
+
+               base_name = cp_smb_filename_nostream(NULL, smb_fname);
+               if (base_name == NULL) {
+                       goto nomem;
+               }
+
+               status = openat_pathref_fsp(fspcwd, base_name);
+               if (!NT_STATUS_IS_OK(status)) {
+                       goto fail;
+               }
+
+               fsp->base_fsp = base_name->fsp;
+       }
+
        fd = SMB_VFS_OPENAT(vfs->conn,
                            fspcwd,
                            smb_fname,