disconnect servers that send missaligned protocol

This commit is contained in:
Jeff Hill
2004-06-14 17:45:43 +00:00
parent 1a6c1caa54
commit da5bc3b820
4 changed files with 12 additions and 6 deletions

View File

@@ -781,6 +781,13 @@ caStatus casDGClient::processMsg ()
msgTmp.m_cid = epicsNTOH32 ( smallHdr.m_cid );
msgTmp.m_available = epicsNTOH32 ( smallHdr.m_available );
if ( payloadSize & 0x7 ) {
status = this->sendErr (
& msgTmp, invalidResID, ECA_INTERNAL,
"CAS: Datagram request wasn't 8 byte aligned" );
this->in.removeMsg ( bytesLeft );
break;
}
msgSize = hdrSize + payloadSize;
if ( bytesLeft < msgSize ) {

View File

@@ -181,11 +181,11 @@ caStatus casStrmClient::processMsg ()
msgTmp.m_available = epicsNTOH32 ( smallHdr.m_available );
// disconnect clients that dont send 8 byte aligned payloads
if ( ( ( payloadSize >> 3 ) << 3 ) != payloadSize ) {
if ( payloadSize & 0x7 ) {
caServerI::dumpMsg ( this->pHostName, this->pUserName, & msgTmp, 0,
"CAS: Missaligned protocol rejected\n" );
"CAS: Stream request wasn't 8 byte aligned\n" );
status = this->sendErr ( guard, & msgTmp, invalidResID, ECA_INTERNAL,
"Missaligned protocol rejected" );
"Stream request wasn't 8 byte aligned" );
status = S_cas_internal;
break;
}