If a pass rule matches in the reassembled stream and/or in the
app-layer state, it means the rest of the flow should not be
inspected.
/* Ok, reset the alert cnt to end in the previous of pass
* so we ignore the rest with less prio */
p->alerts.cnt = i;
+
+ /* if an stream/app-layer match we enforce the pass for the flow */
+ if ((p->flow != NULL) &&
+ (p->alerts.alerts[i].flags &
+ (PACKET_ALERT_FLAG_STATE_MATCH|PACKET_ALERT_FLAG_STREAM_MATCH)))
+ {
+ FlowLockSetNoPacketInspectionFlag(p->flow);
+ }
break;
+
/* if the signature wants to drop, check if the
* PACKET_ALERT_FLAG_DROP_FLOW flag is set. */
} else if ((PACKET_TEST_ACTION(p, ACTION_DROP)) &&