[SCM] Samba Shared Repository - branch master updated

Jeremy Allison jra at samba.org
Tue Feb 12 15:00:02 MST 2013


The branch, master has been updated
       via  fa3924f Fix bug 9519 - Samba returns unexpected error on SMB posix open.
      from  efd60ae Fix some cut-and-paste and spelling in debug messages

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit fa3924f9ea656c279d430212b4b2a667bf5227f8
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Feb 12 10:48:09 2013 -0800

    Fix bug 9519 - Samba returns unexpected error on SMB posix open.
    
    Explicitly ignore bare O_EXCL flags instead of returning INVALID_PARAMETER.
    That's what the Linux kernel does.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Jeff Layton <jlayton at samba.org>
    
    Autobuild-User(master): Jeremy Allison <jra at samba.org>
    Autobuild-Date(master): Tue Feb 12 22:59:21 CET 2013 on sn-devel-104

-----------------------------------------------------------------------

Summary of changes:
 source3/smbd/trans2.c |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c
index 8cffc15..fae9e1f 100644
--- a/source3/smbd/trans2.c
+++ b/source3/smbd/trans2.c
@@ -7412,12 +7412,19 @@ static NTSTATUS smb_posix_open(connection_struct *conn,
 			/* File exists open. File not exist create. */
 			create_disp = FILE_OPEN_IF;
 			break;
+		case SMB_O_EXCL:
+			/* O_EXCL on its own without O_CREAT is undefined.
+			   We deliberately ignore it as some versions of
+			   Linux CIFSFS can send a bare O_EXCL on the
+			   wire which other filesystems in the kernel
+			   ignore. See bug 9519 for details. */
+
+			/* Fallthrough. */
+
 		case 0:
 			/* File exists open. File not exist fail. */
 			create_disp = FILE_OPEN;
 			break;
-		case SMB_O_EXCL:
-			/* O_EXCL on its own without O_CREAT is undefined. */
 		default:
 			DEBUG(5,("smb_posix_open: invalid create mode 0x%x\n",
 				(unsigned int)wire_open_mode ));


-- 
Samba Shared Repository


More information about the samba-cvs mailing list