Fix a endless loop condition in the smb parser and make dcerpc parser more quiet.

remotes/origin/master-1.0.x
Victor Julien 17 years ago
parent 16aebe5add
commit b99e10236c

@ -5,6 +5,7 @@
* \author Kirby Kuehl <kkuehl@gmail.com>
*/
#include "suricata-common.h"
#include "suricata.h"
#include "debug.h"
#include "decode.h"
@ -227,7 +228,9 @@ static uint32_t DCERPCParseBINDCTXItem(DCERPC *dcerpc, uint8_t *input, uint32_t
TAILQ_INSERT_HEAD(&dcerpc->dcerpcbindbindack.uuid_list, dcerpc->dcerpcbindbindack.uuid_entry,
next);
#ifdef UNITTESTS
printUUID("BIND", dcerpc->dcerpcbindbindack.uuid_entry);
if (RunmodeIsUnittests()) {
printUUID("BIND", dcerpc->dcerpcbindbindack.uuid_entry);
}
#endif
dcerpc->dcerpcbindbindack.numctxitemsleft--;
dcerpc->bytesprocessed += (44);
@ -431,7 +434,9 @@ static uint32_t DCERPCParseBINDCTXItem(DCERPC *dcerpc, uint8_t *input, uint32_t
TAILQ_INSERT_HEAD(&dcerpc->dcerpcbindbindack.uuid_list, dcerpc->dcerpcbindbindack.uuid_entry,
next);
#ifdef UNITTESTS
printUUID("BIND", dcerpc->dcerpcbindbindack.uuid_entry);
if (RunmodeIsUnittests()) {
printUUID("BIND", dcerpc->dcerpcbindbindack.uuid_entry);
}
#endif
dcerpc->dcerpcbindbindack.numctxitemsleft--;
dcerpc->bytesprocessed += (44);
@ -472,7 +477,9 @@ static uint32_t DCERPCParseBINDACKCTXItem(DCERPC *dcerpc, uint8_t *input, uint32
- dcerpc->dcerpcbindbindack.numctxitemsleft) {
uuid_entry->result = dcerpc->dcerpcbindbindack.result;
#ifdef UNITTESTS
printUUID("BIND_ACK", uuid_entry);
if (RunmodeIsUnittests()) {
printUUID("BIND_ACK", uuid_entry);
}
#endif
break;
}
@ -582,7 +589,9 @@ static uint32_t DCERPCParseBINDACKCTXItem(DCERPC *dcerpc, uint8_t *input, uint32
- dcerpc->dcerpcbindbindack.numctxitemsleft) {
uuid_entry->result = dcerpc->dcerpcbindbindack.result;
#ifdef UNITTESTS
printUUID("BIND_ACK", uuid_entry);
if (RunmodeIsUnittests()) {
printUUID("BIND_ACK", uuid_entry);
}
#endif
break;
}

@ -928,7 +928,7 @@ static int SMBParse(Flow *f, void *smb_state, AppLayerParserState *pstate,
long int parsed = 0;
if (pstate == NULL)
SCReturnInt(-1);
while (sstate->bytesprocessed < NBSS_HDR_LEN) {
while (input_len && sstate->bytesprocessed < NBSS_HDR_LEN) {
retval
= NBSSParseHeader(f, smb_state, pstate, input, input_len,
output);

Loading…
Cancel
Save