Fix bug in processing of open modes in POSIX open.
authorJeremy Allison <jra@samba.org>
Wed, 25 Feb 2009 20:53:45 +0000 (12:53 -0800)
committerJeremy Allison <jra@samba.org>
Wed, 25 Feb 2009 20:53:45 +0000 (12:53 -0800)
Was missing case of "If file exists open. If file doesn't exist error."
Damn damn damn. CIFSFS client will have to have fallback cases
for this error for a long time.
Jeremy.

source3/smbd/trans2.c

index 433b8a008d0594e30b60a61299f9f107df880704..369830b086f53cf63e373d39f671904054455a36 100644 (file)
@@ -6423,6 +6423,8 @@ 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) {
+               create_disp = FILE_OPEN;
        } else {
                DEBUG(5,("smb_posix_open: invalid create mode 0x%x\n",
                        (unsigned int)wire_open_mode ));