From 47c5d97d82b4ed6ad3cd4bf91b5824234af1b319 Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Sat, 9 Nov 2024 16:15:08 +0100 Subject: [PATCH] smbd: fix access_mask to FILE_APPEND_DATA mapping for POSIX opens Only use POSIX O_APPEND flag if the client requested FILE_APPEND_DATA without FILE_WRITE_DATA. BUG: https://bugzilla.samba.org/show_bug.cgi?id=15751 Signed-off-by: Ralph Boehme Reviewed-by: Jeremy Allison --- selftest/knownfail.d/samba.tests.smb3unix | 1 - source3/smbd/open.c | 5 ++++- 2 files changed, 4 insertions(+), 2 deletions(-) delete mode 100644 selftest/knownfail.d/samba.tests.smb3unix diff --git a/selftest/knownfail.d/samba.tests.smb3unix b/selftest/knownfail.d/samba.tests.smb3unix deleted file mode 100644 index 2882296cba1..00000000000 --- a/selftest/knownfail.d/samba.tests.smb3unix +++ /dev/null @@ -1 +0,0 @@ -^samba.tests.smb3unix.samba.tests.smb3unix.Smb3UnixTests.test_copy_chunk_posix\(fileserver_smb1\) diff --git a/source3/smbd/open.c b/source3/smbd/open.c index f69a788769e..444a7b85fd0 100644 --- a/source3/smbd/open.c +++ b/source3/smbd/open.c @@ -3868,7 +3868,10 @@ static NTSTATUS open_file_ntcreate(connection_struct *conn, } #endif /* O_SYNC */ - if (posix_open && (access_mask & FILE_APPEND_DATA)) { + if (posix_open && + ((access_mask & FILE_APPEND_DATA) && + !(access_mask & FILE_WRITE_DATA))) + { flags |= O_APPEND; } -- 2.47.3