Merged V2.1 to HEAD

6418: Allow getLayeringInfo on deleted nodes.
   6419: fixes for submitting of deleted directories and regenerate renditions related fixes.
   6420: Added installs to build
   6421: Build fix for sdk
   6423: WCM-710 - Submit All feature reintroducted to WCM My Modified Files views
   6424: OpenOffice connection is now tested on bootstrap.
   6425: AWC-1446 - Space Selector would show spaces you do not have access to
   6426: WCM-699 - Staging area user assets
   6427: Rollback exceptions now explicitly handled by RetryingTransactionHelper to extract the cause of the exception.
   6428: Fix for AWC-1340
   6429: Fixed transaction boundaries for full index recovery components
   6433: AR-1660 - SMB and SMB2 signature check 


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@6732 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2007-09-10 21:50:49 +00:00
parent 10b7df662f
commit 4711101687
12 changed files with 138 additions and 27 deletions

View File

@@ -266,6 +266,25 @@ public class SMBSrvPacket
return false;
}
/**
* Check if the SMB packet has an SMB2 signature.
*
* @return boolean True if the packet has an SMB2 signature, else false.
*/
public final boolean isSMB2()
{
// Check for the SMB2 signature block
if (m_smbbuf[SIGNATURE] == (byte) 0xFE && m_smbbuf[SIGNATURE + 1] == 'S' && m_smbbuf[SIGNATURE + 2] == 'M'
&& m_smbbuf[SIGNATURE + 3] == 'B')
return true;
// Not an SMB2 packet
return false;
}
/**
* Clear the data byte count
*/

View File

@@ -1321,6 +1321,35 @@ public class SMBSrvSession extends SrvSession implements Runnable
continue;
}
// Check the packet signature if we are in an SMB state
if ( m_state > SMBSrvSessionState.NBSESSREQ)
{
// Check for an SMB2 packet signature
if ( m_smbPkt.isSMB2())
{
// Debug
if ( logger.isDebugEnabled() && hasDebug(DBG_PKTTYPE))
logger.debug("SMB2 request received, ignoring");
continue;
}
// Check the packet signature
if ( m_smbPkt.checkPacketSignature() == false)
{
// Debug
if ( logger.isDebugEnabled() && hasDebug(DBG_PKTTYPE))
logger.debug("Invalid SMB packet signature received, packet ignored");
continue;
}
}
// Store the received data length
m_smbPkt.setReceivedLength(m_rxlen);