diff options
Diffstat (limited to 'source3/smbd/nttrans.c')
-rw-r--r-- | source3/smbd/nttrans.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/source3/smbd/nttrans.c b/source3/smbd/nttrans.c index 66102fa96c..bacb9cb0b2 100644 --- a/source3/smbd/nttrans.c +++ b/source3/smbd/nttrans.c @@ -554,10 +554,6 @@ void reply_ntcreate_and_X(struct smb_request *req) } file_len = smb_fname->st.st_ex_size; - fattr = dos_mode(conn, smb_fname); - if (fattr == 0) { - fattr = FILE_ATTRIBUTE_NORMAL; - } if (flags & EXTENDED_RESPONSE_REQUIRED) { /* This is very strange. We @@ -586,6 +582,11 @@ void reply_ntcreate_and_X(struct smb_request *req) } p += 4; + fattr = dos_mode(conn, smb_fname); + if (fattr == 0) { + fattr = FILE_ATTRIBUTE_NORMAL; + } + /* Deal with other possible opens having a modified write time. JRA. */ ZERO_STRUCT(write_time_ts); @@ -1070,10 +1071,6 @@ static void call_nt_transact_create(connection_struct *conn, } file_len = smb_fname->st.st_ex_size; - fattr = dos_mode(conn, smb_fname); - if (fattr == 0) { - fattr = FILE_ATTRIBUTE_NORMAL; - } /* Realloc the size of parameters and data we will return */ if (flags & EXTENDED_RESPONSE_REQUIRED) { @@ -1102,6 +1099,11 @@ static void call_nt_transact_create(connection_struct *conn, } p += 8; + fattr = dos_mode(conn, smb_fname); + if (fattr == 0) { + fattr = FILE_ATTRIBUTE_NORMAL; + } + /* Deal with other possible opens having a modified write time. JRA. */ ZERO_STRUCT(write_time_ts); |