summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/smbd/open.c14
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;
}