diff options
-rw-r--r-- | source3/smbd/open.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/source3/smbd/open.c b/source3/smbd/open.c index 4798563721..007b64abf2 100644 --- a/source3/smbd/open.c +++ b/source3/smbd/open.c @@ -2484,13 +2484,6 @@ NTSTATUS create_file(connection_struct *conn, (unsigned int)root_dir_fid, ea_list, sd, fname)); - SET_STAT_INVALID(sbuf); - - if (create_options & FILE_OPEN_BY_FILE_ID) { - status = NT_STATUS_NOT_SUPPORTED; - goto fail; - } - /* * Get the file name. */ @@ -2641,6 +2634,8 @@ NTSTATUS create_file(connection_struct *conn, { char *converted_fname; + SET_STAT_INVALID(sbuf); + status = unix_convert(talloc_tos(), conn, fname, False, &converted_fname, NULL, &sbuf); if (!NT_STATUS_IS_OK(status)) { @@ -2656,6 +2651,11 @@ NTSTATUS create_file(connection_struct *conn, goto fail; } + if (create_options & FILE_OPEN_BY_FILE_ID) { + status = NT_STATUS_NOT_SUPPORTED; + goto fail; + } + if (req == NULL) { oplock_request |= INTERNAL_OPEN_ONLY; } |