summaryrefslogtreecommitdiffstats
path: root/source3/smbd/nttrans.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2009-11-23 10:09:47 -0800
committerJeremy Allison <jra@samba.org>2009-11-23 10:09:47 -0800
commit7ebe5b16416a3a09ff8840ab84079fde022a957c (patch)
tree139fffbd6956b440afeba6ae5272733ee8a503c5 /source3/smbd/nttrans.c
parenta6142987ac164318f5023eaa91e4e65efada4423 (diff)
downloadsamba-7ebe5b16416a3a09ff8840ab84079fde022a957c.tar.gz
samba-7ebe5b16416a3a09ff8840ab84079fde022a957c.tar.xz
samba-7ebe5b16416a3a09ff8840ab84079fde022a957c.zip
Fix bug #6898 - Samba duplicates file content on appending
Clients using a Windows open call should not be able to set FILE_FLAG_POSIX_SEMANTICS in an open. Jeremy.
Diffstat (limited to 'source3/smbd/nttrans.c')
-rw-r--r--source3/smbd/nttrans.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/source3/smbd/nttrans.c b/source3/smbd/nttrans.c
index bacb9cb0b2f..5c6d78089d7 100644
--- a/source3/smbd/nttrans.c
+++ b/source3/smbd/nttrans.c
@@ -418,6 +418,11 @@ void reply_ntcreate_and_X(struct smb_request *req)
flags = IVAL(req->vwv+3, 1);
access_mask = IVAL(req->vwv+7, 1);
file_attributes = IVAL(req->vwv+13, 1);
+ /*
+ * Bug #6898 - clients using Windows opens should
+ * never be able to set this attribute.
+ */
+ file_attributes &= ~FILE_FLAG_POSIX_SEMANTICS;
share_access = IVAL(req->vwv+15, 1);
create_disposition = IVAL(req->vwv+17, 1);
create_options = IVAL(req->vwv+19, 1);
@@ -913,6 +918,11 @@ static void call_nt_transact_create(connection_struct *conn,
flags = IVAL(params,0);
access_mask = IVAL(params,8);
file_attributes = IVAL(params,20);
+ /*
+ * Bug #6898 - clients using Windows opens should
+ * never be able to set this attribute.
+ */
+ file_attributes &= ~FILE_FLAG_POSIX_SEMANTICS;
share_access = IVAL(params,24);
create_disposition = IVAL(params,28);
create_options = IVAL(params,32);