Make test for open modes more robust against other bits.
authorJeremy Allison <jra@samba.org>
Wed, 25 Feb 2009 21:00:21 +0000 (13:00 -0800)
committerKarolin Seeger <kseeger@samba.org>
Tue, 2 Jun 2009 10:41:56 +0000 (12:41 +0200)
Jeremy.
(cherry picked from commit 8d178837f259757340a09a688ed194e3e4a92c36)
(cherry picked from commit 6631ca4a51d4b13d2edd2dc899f7b76c233825b5)
(cherry picked from commit a7f96104b957ba0eb910f8c0073818f872345e3c)

source/smbd/trans2.c

index 5b182df82086d4766a7afe8b856f75c4f03d1e97..25b0c1304b2bf6ac2cd29f88b6f2a468794a99b9 100644 (file)
@@ -6362,7 +6362,7 @@ static NTSTATUS smb_posix_open(connection_struct *conn,
                create_disp = FILE_OVERWRITE_IF;
        } else if((wire_open_mode & SMB_O_CREAT) == SMB_O_CREAT) {
                create_disp = FILE_OPEN_IF;
-       } else if (wire_open_mode == 0) {
+       } else if ((wire_open_mode & (SMB_O_CREAT | SMB_O_EXCL | SMB_O_TRUNC)) == 0) {
                create_disp = FILE_OPEN;
        } else {
                DEBUG(5,("smb_posix_open: invalid create mode 0x%x\n",