use input stream record end for sniffer multi msg

This commit is contained in:
toddouska 2014-12-03 14:44:18 -08:00
parent d552390b39
commit a4a3ebb567

View File

@ -2634,7 +2634,8 @@ static int ProcessMessage(const byte* sslFrame, SnifferSession* session,
int sslBytes, byte* data, const byte* end,char* error) int sslBytes, byte* data, const byte* end,char* error)
{ {
const byte* sslBegin = sslFrame; const byte* sslBegin = sslFrame;
const byte* recordEnd; const byte* recordEnd; /* end of record indicator */
const byte* inRecordEnd; /* indictor from input stream not decrypt */
RecordLayerHeader rh; RecordLayerHeader rh;
int rhSize = 0; int rhSize = 0;
int ret; int ret;
@ -2681,6 +2682,7 @@ doMessage:
sslFrame += RECORD_HEADER_SZ; sslFrame += RECORD_HEADER_SZ;
sslBytes -= RECORD_HEADER_SZ; sslBytes -= RECORD_HEADER_SZ;
recordEnd = sslFrame + rhSize; /* may have more than one record */ recordEnd = sslFrame + rhSize; /* may have more than one record */
inRecordEnd = recordEnd;
/* decrypt if needed */ /* decrypt if needed */
if ((session->flags.side == CYASSL_SERVER_END && if ((session->flags.side == CYASSL_SERVER_END &&
@ -2790,6 +2792,9 @@ doPart:
goto doPart; goto doPart;
} }
/* back to input stream instead of potential decrypt buffer */
recordEnd = inRecordEnd;
/* do we have more records ? */ /* do we have more records ? */
if (recordEnd < end) { if (recordEnd < end) {
Trace(ANOTHER_MSG_STR); Trace(ANOTHER_MSG_STR);