Bug #452 » 0002-code-cleanup-indentation-fix.patch
src/detect.c | ||
---|---|---|
uint8_t pmq_idx = 0;
|
||
StreamMsg *smsg_inspect = smsg;
|
||
for ( ; smsg_inspect != NULL; smsg_inspect = smsg_inspect->next, pmq_idx++) {
|
||
//if (det_ctx->smsg_pmq[pmq_idx].pattern_id_array_cnt == 0) {
|
||
// SCLogDebug("no match in smsg_inspect %p (%u), idx %d", smsg_inspect, smsg_inspect->data.data_len, pmq_idx);
|
||
// continue;
|
||
//}
|
||
//if (det_ctx->smsg_pmq[pmq_idx].pattern_id_bitarray != NULL) {
|
||
/* filter out sigs that want pattern matches, but
|
||
* have no matches */
|
||
if ((s->flags & SIG_FLAG_MPM_STREAM) && !(s->flags & SIG_FLAG_MPM_STREAM_NEG) &&
|
||
!(det_ctx->smsg_pmq[pmq_idx].pattern_id_bitarray[(s->mpm_pattern_id_div_8)] & s->mpm_pattern_id_mod_8)) {
|
||
SCLogDebug("no match in this smsg");
|
||
continue;
|
||
}
|
||
if (DetectEngineInspectStreamPayload(de_ctx, det_ctx, s, p->flow, smsg_inspect->data.data, smsg_inspect->data.data_len) == 1) {
|
||
SCLogDebug("match in smsg %p", smsg);
|
||
pmatch = 1;
|
||
/* Tell the engine that this reassembled stream can drop the
|
||
* rest of the pkts with no further inspection */
|
||
if (s->action & ACTION_DROP)
|
||
alert_flags |= PACKET_ALERT_FLAG_DROP_FLOW;
|
||
/* store ptr to current smsg */
|
||
if (alert_msg == NULL) {
|
||
alert_msg = smsg_inspect;
|
||
p->alerts.alert_msgs = smsg;
|
||
}
|
||
/* filter out sigs that want pattern matches, but
|
||
* have no matches */
|
||
if ((s->flags & SIG_FLAG_MPM_STREAM) && !(s->flags & SIG_FLAG_MPM_STREAM_NEG) &&
|
||
!(det_ctx->smsg_pmq[pmq_idx].pattern_id_bitarray[(s->mpm_pattern_id_div_8)] & s->mpm_pattern_id_mod_8)) {
|
||
SCLogDebug("no match in this smsg");
|
||
continue;
|
||
}
|
||
break;
|
||
if (DetectEngineInspectStreamPayload(de_ctx, det_ctx, s, p->flow, smsg_inspect->data.data, smsg_inspect->data.data_len) == 1) {
|
||
SCLogDebug("match in smsg %p", smsg);
|
||
pmatch = 1;
|
||
/* Tell the engine that this reassembled stream can drop the
|
||
* rest of the pkts with no further inspection */
|
||
if (s->action & ACTION_DROP)
|
||
alert_flags |= PACKET_ALERT_FLAG_DROP_FLOW;
|
||
/* store ptr to current smsg */
|
||
if (alert_msg == NULL) {
|
||
alert_msg = smsg_inspect;
|
||
p->alerts.alert_msgs = smsg;
|
||
}
|
||
//}
|
||
break;
|
||
}
|
||
}
|
||
} /* if (smsg != NULL) */
|