]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3: smbd: Add returned dirfsp pointer to filename_convert_smb1_search_path().
authorJeremy Allison <jra@samba.org>
Wed, 3 Aug 2022 16:58:54 +0000 (09:58 -0700)
committerJeremy Allison <jra@samba.org>
Thu, 4 Aug 2022 17:09:31 +0000 (17:09 +0000)
Preparation for convertion of the last filename_convert() -> filename_convert_dirfsp().

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
source3/smbd/filename.c
source3/smbd/proto.h
source3/smbd/smb1_reply.c
source3/smbd/smb1_trans2.c

index 3dd62bab62573c2f10d73b8eb773da54d85d834a..e1ecf4dee8bb5ce608719a84308cd011db3a90a0 100644 (file)
@@ -2058,6 +2058,7 @@ NTSTATUS filename_convert_smb1_search_path(TALLOC_CTX *ctx,
                                           connection_struct *conn,
                                           char *name_in,
                                           uint32_t ucf_flags,
+                                          struct files_struct **_dirfsp,
                                           struct smb_filename **_smb_fname_out,
                                           char **_mask_out)
 {
@@ -2069,6 +2070,7 @@ NTSTATUS filename_convert_smb1_search_path(TALLOC_CTX *ctx,
        NTTIME twrp = 0;
 
        *_smb_fname_out = NULL;
+       *_dirfsp = NULL;
        *_mask_out = NULL;
 
        DBG_DEBUG("name_in: %s\n", name_in);
index 5aa690062f7e560a4e8ff38372ead891d1b6adbc..6ee127f867b6a088a6fa53a61804d2d61c27c515 100644 (file)
@@ -385,6 +385,7 @@ NTSTATUS filename_convert_smb1_search_path(TALLOC_CTX *ctx,
                                           connection_struct *conn,
                                           char *name_in,
                                           uint32_t ucf_flags,
+                                          struct files_struct **_dirfsp,
                                           struct smb_filename **_smb_fname_out,
                                           char **_mask_out);
 NTSTATUS get_real_filename_at(struct files_struct *dirfsp,
index 1e969d4083403b5f181b65ec985930d69d8ca08e..79addb4120d79dac323f1cea5622bab0a21a6c77 100644 (file)
@@ -1077,6 +1077,7 @@ void reply_search(struct smb_request *req)
 
        if (status_len == 0) {
                const char *dirpath;
+               struct files_struct *dirfsp = NULL;
                struct smb_filename *smb_dname = NULL;
                uint32_t ucf_flags = ucf_flags_from_smb_request(req);
 
@@ -1084,6 +1085,7 @@ void reply_search(struct smb_request *req)
                                        conn,
                                        path,
                                        ucf_flags,
+                                       &dirfsp,
                                        &smb_dname,
                                        &mask);
 
@@ -1106,7 +1108,7 @@ void reply_search(struct smb_request *req)
                nt_status = SMB_VFS_CREATE_FILE(
                                conn, /* conn */
                                req, /* req */
-                               NULL, /* dirfsp */
+                               dirfsp, /* dirfsp */
                                smb_dname, /* dname */
                                FILE_LIST_DIRECTORY, /* access_mask */
                                FILE_SHARE_READ|
index dc21e14aa86ed36fe6e683ed30675bc2e9c0eecd..a158456df491d4c949c8ac6a362698fea9d3fc78 100644 (file)
@@ -844,6 +844,7 @@ static void call_trans2findfirst(connection_struct *conn,
        bool backup_priv = false;
        bool as_root = false;
        files_struct *fsp = NULL;
+       struct files_struct *dirfsp = NULL;
        const struct loadparm_substitution *lp_sub =
                loadparm_s3_global_substitution();
 
@@ -946,6 +947,7 @@ static void call_trans2findfirst(connection_struct *conn,
                                                     conn,
                                                     directory,
                                                     ucf_flags,
+                                                    &dirfsp,
                                                     &smb_dname,
                                                     &mask);
 
@@ -1025,7 +1027,7 @@ total_data=%u (should be %u)\n", (unsigned int)total_data, (unsigned int)IVAL(pd
        ntstatus = SMB_VFS_CREATE_FILE(
                        conn, /* conn */
                        req, /* req */
-                       NULL, /* dirfsp */
+                       dirfsp, /* dirfsp */
                        smb_dname, /* dname */
                        FILE_LIST_DIRECTORY, /* access_mask */
                        FILE_SHARE_READ|