diff options
author | Jeremy Allison <jra@samba.org> | 2009-06-16 17:23:54 -0700 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2009-06-16 17:23:54 -0700 |
commit | 9b30c5c1457a42a92a61086f8127caf6c60fc076 (patch) | |
tree | 801d7a9855513ba143eb3ee2c30fc48bd9e0438e /source3/smbd/smb2_create.c | |
parent | fbe85c70ef0aed6ff3c20585ae1f001c0417665c (diff) | |
download | samba-9b30c5c1457a42a92a61086f8127caf6c60fc076.tar.gz samba-9b30c5c1457a42a92a61086f8127caf6c60fc076.tar.bz2 samba-9b30c5c1457a42a92a61086f8127caf6c60fc076.zip |
Fix msdfs after the change to smb_filename struct. We must *always*
pull the pathname, then call resolve_dfspath(), before unix_convert().
Jeremy.
Diffstat (limited to 'source3/smbd/smb2_create.c')
-rw-r--r-- | source3/smbd/smb2_create.c | 15 |
1 files changed, 14 insertions, 1 deletions
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; } |