diff options
author | Jeremy Allison <jra@samba.org> | 2011-10-04 14:46:00 -0700 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2011-10-05 01:19:17 +0200 |
commit | f93fd128eb623e324459806a34052bd40afe82e5 (patch) | |
tree | c4eacfaacacd945ffb91a0dcf1b1beac5e52879c /source3/smbd | |
parent | e30e7a6ec02700234f73671c113743e1572efa01 (diff) | |
download | samba-f93fd128eb623e324459806a34052bd40afe82e5.tar.gz samba-f93fd128eb623e324459806a34052bd40afe82e5.tar.bz2 samba-f93fd128eb623e324459806a34052bd40afe82e5.zip |
Fix bug #8507 - smbd doesn't correctly honor the "force create mode" bits from a cifsfs create.
Don't manipulate the new_dos_attributes bits until we know it's not a POSIX open.
Autobuild-User: Jeremy Allison <jra@samba.org>
Autobuild-Date: Wed Oct 5 01:19:17 CEST 2011 on sn-devel-104
Diffstat (limited to 'source3/smbd')
-rw-r--r-- | source3/smbd/open.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/source3/smbd/open.c b/source3/smbd/open.c index 61d1a2e3cc..a44f15f0cc 100644 --- a/source3/smbd/open.c +++ b/source3/smbd/open.c @@ -1541,12 +1541,6 @@ static NTSTATUS open_file_ntcreate(connection_struct *conn, ZERO_STRUCT(id); - /* Windows allows a new file to be created and - silently removes a FILE_ATTRIBUTE_DIRECTORY - sent by the client. Do the same. */ - - new_dos_attributes &= ~FILE_ATTRIBUTE_DIRECTORY; - if (conn->printer) { /* * Printers are handled completely differently. @@ -1580,6 +1574,12 @@ static NTSTATUS open_file_ntcreate(connection_struct *conn, unx_mode = (mode_t)(new_dos_attributes & ~FILE_FLAG_POSIX_SEMANTICS); new_dos_attributes = 0; } else { + /* Windows allows a new file to be created and + silently removes a FILE_ATTRIBUTE_DIRECTORY + sent by the client. Do the same. */ + + new_dos_attributes &= ~FILE_ATTRIBUTE_DIRECTORY; + /* We add FILE_ATTRIBUTE_ARCHIVE to this as this mode is only used if the file is * created new. */ unx_mode = unix_mode(conn, new_dos_attributes | FILE_ATTRIBUTE_ARCHIVE, |