From a70a9c63df34467dfef57003cf9f156e9b8d7b03 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Wed, 27 Jul 2022 12:39:11 -0700 Subject: [PATCH] s3: smbd: Convert call_trans2mkdir() to use filename_convert_dirfsp(). One less use of filename_convert(). Signed-off-by: Jeremy Allison Reviewed-by: Volker Lendecke --- source3/smbd/smb1_trans2.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/source3/smbd/smb1_trans2.c b/source3/smbd/smb1_trans2.c index 120d63d5ca8..537b4dc6ff2 100644 --- a/source3/smbd/smb1_trans2.c +++ b/source3/smbd/smb1_trans2.c @@ -2623,6 +2623,7 @@ static void call_trans2mkdir(connection_struct *conn, struct smb_request *req, char **ppdata, int total_data, unsigned int max_data_bytes) { + struct files_struct *dirfsp = NULL; struct files_struct *fsp = NULL; struct smb_filename *smb_dname = NULL; char *params = *pparams; @@ -2631,6 +2632,7 @@ static void call_trans2mkdir(connection_struct *conn, struct smb_request *req, NTSTATUS status = NT_STATUS_OK; struct ea_list *ea_list = NULL; uint32_t ucf_flags = ucf_flags_from_smb_request(req); + NTTIME twrp = 0; TALLOC_CTX *ctx = talloc_tos(); if (!CAN_WRITE(conn)) { @@ -2669,13 +2671,16 @@ static void call_trans2mkdir(connection_struct *conn, struct smb_request *req, DEBUG(3,("call_trans2mkdir : name = %s\n", directory)); - status = filename_convert(ctx, - conn, - directory, - ucf_flags, - 0, - &smb_dname); - + if (ucf_flags & UCF_GMT_PATHNAME) { + extract_snapshot_token(directory, &twrp); + } + status = filename_convert_dirfsp(ctx, + conn, + directory, + ucf_flags, + twrp, + &dirfsp, + &smb_dname); if (!NT_STATUS_IS_OK(status)) { if (NT_STATUS_EQUAL(status,NT_STATUS_PATH_NOT_COVERED)) { reply_botherror(req, @@ -2727,7 +2732,7 @@ static void call_trans2mkdir(connection_struct *conn, struct smb_request *req, status = SMB_VFS_CREATE_FILE( conn, /* conn */ req, /* req */ - NULL, /* dirfsp */ + dirfsp, /* dirfsp */ smb_dname, /* fname */ MAXIMUM_ALLOWED_ACCESS, /* access_mask */ FILE_SHARE_NONE, /* share_access */ -- 2.47.3