smb: detect protocol in both directions

pull/2501/head
Victor Julien 9 years ago
parent e9fccfa67c
commit fa8cbd8741

@ -1500,18 +1500,17 @@ static uint16_t SMBProbingParser(uint8_t *input, uint32_t ilen, uint32_t *offset
static int SMBRegisterPatternsForProtocolDetection(void)
{
if (AppLayerProtoDetectPMRegisterPatternCS(IPPROTO_TCP, ALPROTO_SMB,
"|ff|SMB", 8, 4, STREAM_TOSERVER) < 0)
{
return -1;
}
if (AppLayerProtoDetectPMRegisterPatternCS(IPPROTO_TCP, ALPROTO_SMB2,
"|fe|SMB", 8, 4, STREAM_TOSERVER) < 0)
{
return -1;
}
return 0;
int r = 0;
r |= AppLayerProtoDetectPMRegisterPatternCS(IPPROTO_TCP, ALPROTO_SMB,
"|ff|SMB", 8, 4, STREAM_TOSERVER);
r |= AppLayerProtoDetectPMRegisterPatternCS(IPPROTO_TCP, ALPROTO_SMB,
"|ff|SMB", 8, 4, STREAM_TOCLIENT);
r |= AppLayerProtoDetectPMRegisterPatternCS(IPPROTO_TCP, ALPROTO_SMB2,
"|fe|SMB", 8, 4, STREAM_TOSERVER);
r |= AppLayerProtoDetectPMRegisterPatternCS(IPPROTO_TCP, ALPROTO_SMB2,
"|fe|SMB", 8, 4, STREAM_TOCLIENT);
return r == 0 ? 0 : -1;
}
void RegisterSMBParsers(void)
@ -1529,12 +1528,12 @@ void RegisterSMBParsers(void)
ALPROTO_SMB,
SMB_PROBING_PARSER_MIN_DEPTH, 0,
STREAM_TOSERVER,
SMBProbingParser, NULL);
SMBProbingParser, SMBProbingParser);
} else {
AppLayerProtoDetectPPParseConfPorts("tcp", IPPROTO_TCP,
proto_name, ALPROTO_SMB,
SMB_PROBING_PARSER_MIN_DEPTH, 0,
SMBProbingParser, NULL);
SMBProbingParser, SMBProbingParser);
}
AppLayerParserRegisterParserAcceptableDataDirection(IPPROTO_TCP, ALPROTO_SMB, STREAM_TOSERVER);

Loading…
Cancel
Save