From: Jeremy Allison Date: Wed, 3 Aug 2022 16:58:54 +0000 (-0700) Subject: s3: smbd: Add returned dirfsp pointer to filename_convert_smb1_search_path(). X-Git-Tag: samba-4.17.0rc1~78 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7bd5c05fbd9e4c1a1fc99dd8d673636aa19578e7;p=thirdparty%2Fsamba.git s3: smbd: Add returned dirfsp pointer to filename_convert_smb1_search_path(). Preparation for convertion of the last filename_convert() -> filename_convert_dirfsp(). Signed-off-by: Jeremy Allison Reviewed-by: Volker Lendecke --- diff --git a/source3/smbd/filename.c b/source3/smbd/filename.c index 3dd62bab625..e1ecf4dee8b 100644 --- a/source3/smbd/filename.c +++ b/source3/smbd/filename.c @@ -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); diff --git a/source3/smbd/proto.h b/source3/smbd/proto.h index 5aa690062f7..6ee127f867b 100644 --- a/source3/smbd/proto.h +++ b/source3/smbd/proto.h @@ -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, diff --git a/source3/smbd/smb1_reply.c b/source3/smbd/smb1_reply.c index 1e969d40834..79addb4120d 100644 --- a/source3/smbd/smb1_reply.c +++ b/source3/smbd/smb1_reply.c @@ -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| diff --git a/source3/smbd/smb1_trans2.c b/source3/smbd/smb1_trans2.c index dc21e14aa86..a158456df49 100644 --- a/source3/smbd/smb1_trans2.c +++ b/source3/smbd/smb1_trans2.c @@ -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|