summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 bacb9cb0b2..5c6d78089d 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);