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 <j...@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