[SCM] Samba Shared Repository - branch master updated

Jeremy Allison jra at samba.org
Tue May 11 15:01:35 MDT 2010


The branch, master has been updated
       via  4955ccf... Fix more SMB2-OPLOCK bugs. Only 3 more issues to address then we're good to go on this test.
      from  454b0b3... s3:kerberos Return PAC_LOGON_INFO rather than the full PAC_DATA

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


- Log -----------------------------------------------------------------
commit 4955ccfff52c18a37cf0ec6e547bb8da0f7269a2
Author: Jeremy Allison <jra at samba.org>
Date:   Tue May 11 14:00:38 2010 -0700

    Fix more SMB2-OPLOCK bugs. Only 3 more issues to address then we're good to go on this test.
    
    Jeremy.

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

Summary of changes:
 source3/smbd/smb2_create.c |    7 ++++++-
 source3/smbd/trans2.c      |   10 +++++++++-
 2 files changed, 15 insertions(+), 2 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/smbd/smb2_create.c b/source3/smbd/smb2_create.c
index eb8b2c5..25e995c 100644
--- a/source3/smbd/smb2_create.c
+++ b/source3/smbd/smb2_create.c
@@ -52,7 +52,12 @@ static uint8_t map_samba_oplock_levels_to_smb2(int oplock_type)
 		return SMB2_OPLOCK_LEVEL_BATCH;
 	} else if (EXCLUSIVE_OPLOCK_TYPE(oplock_type)) {
 		return SMB2_OPLOCK_LEVEL_EXCLUSIVE;
-	} else if (LEVEL_II_OPLOCK_TYPE(oplock_type)) {
+	} else if (oplock_type == LEVEL_II_OPLOCK) {
+		/*
+		 * Don't use LEVEL_II_OPLOCK_TYPE here as
+		 * this also includes FAKE_LEVEL_II_OPLOCKs
+		 * which are internal only.
+		 */
 		return SMB2_OPLOCK_LEVEL_II;
 	} else {
 		return SMB2_OPLOCK_LEVEL_NONE;
diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c
index 25ca3fd..5d51a7f 100644
--- a/source3/smbd/trans2.c
+++ b/source3/smbd/trans2.c
@@ -5951,7 +5951,15 @@ static NTSTATUS smb2_file_rename_information(connection_struct *conn,
 		return status;
 	}
 
-	if (fsp && fsp->base_fsp) {
+	/* Ok, this looks wrong to me, but appears to
+	 * be how SMB2 renames work. CHECK WITH Microsoft !
+	 * jra.
+	 */
+	if (fsp->oplock_type != NO_OPLOCK) {
+		return NT_STATUS_SHARING_VIOLATION;
+	}
+
+	if (fsp->base_fsp) {
 		/* newname must be a stream name. */
 		if (newname[0] != ':') {
 			return NT_STATUS_NOT_SUPPORTED;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list