]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
smbd: use openat_pathref_fsp() in reply_search()
authorRalph Boehme <slow@samba.org>
Thu, 12 Nov 2020 13:52:31 +0000 (14:52 +0100)
committerRalph Boehme <slow@samba.org>
Wed, 16 Dec 2020 09:08:31 +0000 (09:08 +0000)
Ensures we have a pathref handle in the smb_fname we pass to
SMB_VFS_CREATE_FILE().

As the create_disposition is FILE_OPEN we just return the error if
openat_pathref_fsp() fails

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/smbd/reply.c

index a8b3f028feafcf88aae80d57106094a270cbe6cc..e945c4ecbe59d380afd08aaa6466644efc0993d9 100644 (file)
@@ -1837,6 +1837,15 @@ void reply_search(struct smb_request *req)
                        goto out;
                }
 
+               nt_status = openat_pathref_fsp(conn->cwd_fsp, smb_dname);
+               if (NT_STATUS_EQUAL(nt_status, NT_STATUS_STOPPED_ON_SYMLINK)) {
+                       nt_status = NT_STATUS_OBJECT_NAME_NOT_FOUND;
+               }
+               if (!NT_STATUS_IS_OK(nt_status)) {
+                       reply_nterror(req, nt_status);
+                       goto out;
+               }
+
                /*
                 * Open an fsp on this directory for the dptr.
                 */