From 9b30c5c1457a42a92a61086f8127caf6c60fc076 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Tue, 16 Jun 2009 17:23:54 -0700 Subject: Fix msdfs after the change to smb_filename struct. We must *always* pull the pathname, then call resolve_dfspath(), before unix_convert(). Jeremy. --- source3/smbd/smb2_create.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'source3/smbd/smb2_create.c') diff --git a/source3/smbd/smb2_create.c b/source3/smbd/smb2_create.c index ad14b354a9..81879f1725 100644 --- a/source3/smbd/smb2_create.c +++ b/source3/smbd/smb2_create.c @@ -309,13 +309,26 @@ static struct tevent_req *smbd_smb2_create_send(TALLOC_CTX *mem_ctx, } info = FILE_WAS_CREATED; } else { + char *fname = NULL; + /* these are ignored for SMB2 */ in_create_options &= ~(0x10);/* NTCREATEX_OPTIONS_SYNC_ALERT */ in_create_options &= ~(0x20);/* NTCREATEX_OPTIONS_ASYNC_ALERT */ - status = unix_convert(talloc_tos(), smbreq->conn, in_name, + status = resolve_dfspath(talloc_tos(), + smbreq->conn, + smbreq->flags2 & FLAGS2_DFS_PATHNAMES, + in_name, + &fname); + if (!NT_STATUS_IS_OK(status)) { + tevent_req_nterror(req, status); + goto out; + } + + status = unix_convert(talloc_tos(), smbreq->conn, fname, &smb_fname, 0); if (!NT_STATUS_IS_OK(status)) { + tevent_req_nterror(req, status); goto out; } -- cgit