|
|
|
@ -672,21 +672,19 @@ static inline int DetectRunInspectRulePacketMatches(
|
|
|
|
SigMatchData *smd = s->sm_arrays[DETECT_SM_LIST_MATCH];
|
|
|
|
SigMatchData *smd = s->sm_arrays[DETECT_SM_LIST_MATCH];
|
|
|
|
|
|
|
|
|
|
|
|
SCLogDebug("running match functions, sm %p", smd);
|
|
|
|
SCLogDebug("running match functions, sm %p", smd);
|
|
|
|
if (smd != NULL) {
|
|
|
|
while (1) {
|
|
|
|
while (1) {
|
|
|
|
KEYWORD_PROFILING_START;
|
|
|
|
KEYWORD_PROFILING_START;
|
|
|
|
if (sigmatch_table[smd->type].Match(tv, det_ctx, p, s, smd->ctx) <= 0) {
|
|
|
|
if (sigmatch_table[smd->type].Match(tv, det_ctx, p, s, smd->ctx) <= 0) {
|
|
|
|
KEYWORD_PROFILING_END(det_ctx, smd->type, 0);
|
|
|
|
KEYWORD_PROFILING_END(det_ctx, smd->type, 0);
|
|
|
|
SCLogDebug("no match");
|
|
|
|
SCLogDebug("no match");
|
|
|
|
return 0;
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
KEYWORD_PROFILING_END(det_ctx, smd->type, 1);
|
|
|
|
|
|
|
|
if (smd->is_last) {
|
|
|
|
|
|
|
|
SCLogDebug("match and is_last");
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
smd++;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
KEYWORD_PROFILING_END(det_ctx, smd->type, 1);
|
|
|
|
|
|
|
|
if (smd->is_last) {
|
|
|
|
|
|
|
|
SCLogDebug("match and is_last");
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
smd++;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return 1;
|
|
|
|
return 1;
|
|
|
|
|