From: Ralph Boehme Date: Sat, 24 Nov 2018 09:45:49 +0000 (+0100) Subject: s3:smbd: add twrp args to filename_convert() X-Git-Tag: samba-4.8.9~31 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=299eef1e7e1a282f9aef0ebd9b6d948ef6cbdd9f;p=thirdparty%2Fsamba.git s3:smbd: add twrp args to filename_convert() All existing callers pass NULL, no change in behaviour. Bug: https://bugzilla.samba.org/show_bug.cgi?id=13455 Signed-off-by: Ralph Boehme Reviewed-by: Jeremy Allison (cherry picked from commit 14b6e6842b76d7c3e53249ba026a3ff51615ebd7) --- diff --git a/source3/rpc_server/srvsvc/srv_srvsvc_nt.c b/source3/rpc_server/srvsvc/srv_srvsvc_nt.c index 2ff8e64fccc..69d7560c4b6 100644 --- a/source3/rpc_server/srvsvc/srv_srvsvc_nt.c +++ b/source3/rpc_server/srvsvc/srv_srvsvc_nt.c @@ -2359,6 +2359,7 @@ WERROR _srvsvc_NetGetFileSecurity(struct pipes_struct *p, r->in.file, ucf_flags, NULL, + NULL, &smb_fname); if (!NT_STATUS_IS_OK(nt_status)) { werr = ntstatus_to_werror(nt_status); @@ -2502,6 +2503,7 @@ WERROR _srvsvc_NetSetFileSecurity(struct pipes_struct *p, r->in.file, ucf_flags, NULL, + NULL, &smb_fname); if (!NT_STATUS_IS_OK(nt_status)) { werr = ntstatus_to_werror(nt_status); diff --git a/source3/smbd/filename.c b/source3/smbd/filename.c index e7d0c4a70de..ede14b95e79 100644 --- a/source3/smbd/filename.c +++ b/source3/smbd/filename.c @@ -1690,6 +1690,7 @@ NTSTATUS filename_convert(TALLOC_CTX *ctx, connection_struct *conn, const char *name_in, uint32_t ucf_flags, + time_t *twrp, bool *ppath_contains_wcard, struct smb_filename **pp_smb_fname) { @@ -1698,7 +1699,7 @@ NTSTATUS filename_convert(TALLOC_CTX *ctx, NULL, name_in, ucf_flags, - NULL, + twrp, ppath_contains_wcard, pp_smb_fname); } diff --git a/source3/smbd/nttrans.c b/source3/smbd/nttrans.c index 68470766f77..e692f520e6c 100644 --- a/source3/smbd/nttrans.c +++ b/source3/smbd/nttrans.c @@ -543,6 +543,7 @@ void reply_ntcreate_and_X(struct smb_request *req) fname, ucf_flags, NULL, + NULL, &smb_fname); TALLOC_FREE(case_state); @@ -1115,6 +1116,7 @@ static void call_nt_transact_create(connection_struct *conn, fname, ucf_flags, NULL, + NULL, &smb_fname); TALLOC_FREE(case_state); @@ -1636,6 +1638,7 @@ void reply_ntrename(struct smb_request *req) oldname, ucf_flags_src, NULL, + NULL, &smb_fname_old); if (!NT_STATUS_IS_OK(status)) { if (NT_STATUS_EQUAL(status, @@ -1652,6 +1655,7 @@ void reply_ntrename(struct smb_request *req) status = filename_convert(ctx, conn, newname, ucf_flags_dst, + NULL, &dest_has_wcard, &smb_fname_new); if (!NT_STATUS_IS_OK(status)) { diff --git a/source3/smbd/open.c b/source3/smbd/open.c index 97cf458a864..8a202ab2996 100644 --- a/source3/smbd/open.c +++ b/source3/smbd/open.c @@ -5519,6 +5519,7 @@ NTSTATUS get_relative_fid_filename(connection_struct *conn, new_base_name, ucf_flags, NULL, + NULL, smb_fname_out); if (!NT_STATUS_IS_OK(status)) { goto out; diff --git a/source3/smbd/proto.h b/source3/smbd/proto.h index 8b501d77844..db0bffbdd7c 100644 --- a/source3/smbd/proto.h +++ b/source3/smbd/proto.h @@ -354,6 +354,7 @@ NTSTATUS filename_convert(TALLOC_CTX *mem_ctx, connection_struct *conn, const char *name_in, uint32_t ucf_flags, + time_t *twrp, bool *ppath_contains_wcard, struct smb_filename **pp_smb_fname); NTSTATUS filename_convert_with_privilege(TALLOC_CTX *mem_ctx, diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c index 2b5bb8f1ed6..5adaba22dbe 100644 --- a/source3/smbd/reply.c +++ b/source3/smbd/reply.c @@ -1305,6 +1305,7 @@ void reply_checkpath(struct smb_request *req) name, ucf_flags, NULL, + NULL, &smb_fname); if (!NT_STATUS_IS_OK(status)) { @@ -1403,6 +1404,7 @@ void reply_getatr(struct smb_request *req) fname, ucf_flags, NULL, + NULL, &smb_fname); if (!NT_STATUS_IS_OK(status)) { if (NT_STATUS_EQUAL(status,NT_STATUS_PATH_NOT_COVERED)) { @@ -1506,6 +1508,7 @@ void reply_setatr(struct smb_request *req) fname, ucf_flags, NULL, + NULL, &smb_fname); if (!NT_STATUS_IS_OK(status)) { if (NT_STATUS_EQUAL(status,NT_STATUS_PATH_NOT_COVERED)) { @@ -1803,6 +1806,7 @@ void reply_search(struct smb_request *req) nt_status = filename_convert(ctx, conn, path, ucf_flags, + NULL, &mask_contains_wcard, &smb_fname); if (!NT_STATUS_IS_OK(nt_status)) { @@ -2146,6 +2150,7 @@ void reply_open(struct smb_request *req) fname, ucf_flags, NULL, + NULL, &smb_fname); if (!NT_STATUS_IS_OK(status)) { if (NT_STATUS_EQUAL(status,NT_STATUS_PATH_NOT_COVERED)) { @@ -2318,6 +2323,7 @@ void reply_open_and_X(struct smb_request *req) fname, ucf_flags, NULL, + NULL, &smb_fname); if (!NT_STATUS_IS_OK(status)) { if (NT_STATUS_EQUAL(status,NT_STATUS_PATH_NOT_COVERED)) { @@ -2562,6 +2568,7 @@ void reply_mknew(struct smb_request *req) fname, ucf_flags, NULL, + NULL, &smb_fname); if (!NT_STATUS_IS_OK(status)) { if (NT_STATUS_EQUAL(status,NT_STATUS_PATH_NOT_COVERED)) { @@ -2698,6 +2705,7 @@ void reply_ctemp(struct smb_request *req) fname, ucf_flags, NULL, + NULL, &smb_fname); if (!NT_STATUS_IS_OK(status)) { if (NT_STATUS_EQUAL(status,NT_STATUS_PATH_NOT_COVERED)) { @@ -3236,6 +3244,7 @@ void reply_unlink(struct smb_request *req) status = filename_convert(ctx, conn, name, ucf_flags, + NULL, &path_contains_wcard, &smb_fname); if (!NT_STATUS_IS_OK(status)) { @@ -6168,6 +6177,7 @@ void reply_mkdir(struct smb_request *req) directory, ucf_flags, NULL, + NULL, &smb_dname); if (!NT_STATUS_IS_OK(status)) { if (NT_STATUS_EQUAL(status,NT_STATUS_PATH_NOT_COVERED)) { @@ -6238,6 +6248,7 @@ void reply_rmdir(struct smb_request *req) directory, ucf_flags, NULL, + NULL, &smb_dname); if (!NT_STATUS_IS_OK(status)) { if (NT_STATUS_EQUAL(status,NT_STATUS_PATH_NOT_COVERED)) { @@ -7360,6 +7371,7 @@ void reply_mv(struct smb_request *req) conn, name, src_ucf_flags, + NULL, &src_has_wcard, &smb_fname_src); @@ -7377,6 +7389,7 @@ void reply_mv(struct smb_request *req) conn, newname, dst_ucf_flags, + NULL, &dest_has_wcard, &smb_fname_dst); @@ -7670,6 +7683,7 @@ void reply_copy(struct smb_request *req) status = filename_convert(ctx, conn, fname_src, ucf_flags_src, + NULL, &source_has_wild, &smb_fname_src); if (!NT_STATUS_IS_OK(status)) { @@ -7685,6 +7699,7 @@ void reply_copy(struct smb_request *req) status = filename_convert(ctx, conn, fname_dst, ucf_flags_dst, + NULL, &dest_has_wild, &smb_fname_dst); if (!NT_STATUS_IS_OK(status)) { diff --git a/source3/smbd/smb2_create.c b/source3/smbd/smb2_create.c index 16a02f42ea3..799efd1d26c 100644 --- a/source3/smbd/smb2_create.c +++ b/source3/smbd/smb2_create.c @@ -423,7 +423,7 @@ static NTSTATUS smbd_smb2_create_durable_lease_check(struct smb_request *smb1req ucf_flags = filename_create_ucf_flags(smb1req, FILE_OPEN); status = filename_convert(talloc_tos(), fsp->conn, filename, ucf_flags, - NULL, &smb_fname); + NULL, NULL, &smb_fname); TALLOC_FREE(filename); if (!NT_STATUS_IS_OK(status)) { DEBUG(10, ("filename_convert returned %s\n", @@ -891,6 +891,7 @@ static struct tevent_req *smbd_smb2_create_send(TALLOC_CTX *mem_ctx, smb1req->conn, state->fname, ucf_flags, + NULL, NULL, /* ppath_contains_wcards */ &smb_fname); if (!NT_STATUS_IS_OK(status)) { diff --git a/source3/smbd/smb2_query_directory.c b/source3/smbd/smb2_query_directory.c index 700f43e3126..f0aa65fe193 100644 --- a/source3/smbd/smb2_query_directory.c +++ b/source3/smbd/smb2_query_directory.c @@ -400,6 +400,7 @@ static struct tevent_req *smbd_smb2_query_directory_send(TALLOC_CTX *mem_ctx, conn, fullpath, ucf_flags, + NULL, &wcard_has_wild, &smb_fname); diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c index 9e29c9c23c3..bb20ebeec86 100644 --- a/source3/smbd/trans2.c +++ b/source3/smbd/trans2.c @@ -1296,6 +1296,7 @@ static void call_trans2open(connection_struct *conn, fname, ucf_flags, NULL, + NULL, &smb_fname); if (!NT_STATUS_IS_OK(status)) { if (NT_STATUS_EQUAL(status,NT_STATUS_PATH_NOT_COVERED)) { @@ -2737,6 +2738,7 @@ close_if_end = %d requires_resume_key = %d backup_priv = %d level = 0x%x, max_da ntstatus = filename_convert(talloc_tos(), conn, directory, ucf_flags, + NULL, &mask_contains_wcard, &smb_dname); } @@ -5850,6 +5852,7 @@ static void call_trans2qfilepathinfo(connection_struct *conn, fname, ucf_flags, NULL, + NULL, &smb_fname); if (!NT_STATUS_IS_OK(status)) { if (NT_STATUS_EQUAL(status,NT_STATUS_PATH_NOT_COVERED)) { @@ -6686,6 +6689,7 @@ static NTSTATUS smb_set_file_unix_hlink(connection_struct *conn, oldname, ucf_flags, NULL, + NULL, &smb_fname_old); if (!NT_STATUS_IS_OK(status)) { return status; @@ -6761,6 +6765,7 @@ static NTSTATUS smb2_file_rename_information(connection_struct *conn, newname, ucf_flags, NULL, + NULL, &smb_fname_dst); if (!NT_STATUS_IS_OK(status)) { return status; @@ -6871,6 +6876,7 @@ static NTSTATUS smb_file_link_information(connection_struct *conn, newname, ucf_flags, NULL, + NULL, &smb_fname_dst); if (!NT_STATUS_IS_OK(status)) { return status; @@ -8831,6 +8837,7 @@ static void call_trans2setfilepathinfo(connection_struct *conn, fname, ucf_flags, NULL, + NULL, &smb_fname); if (!NT_STATUS_IS_OK(status)) { if (NT_STATUS_EQUAL(status,NT_STATUS_PATH_NOT_COVERED)) { @@ -8980,6 +8987,7 @@ static void call_trans2mkdir(connection_struct *conn, struct smb_request *req, directory, ucf_flags, NULL, + NULL, &smb_dname); if (!NT_STATUS_IS_OK(status)) {