|
|
|
|
@ -1378,7 +1378,7 @@ void SigMatchSignatures(ThreadVars *th_v, DetectEngineCtx *de_ctx, DetectEngineT
|
|
|
|
|
PacketAlertAppend(det_ctx, s, p, 0, alert_flags);
|
|
|
|
|
} else {
|
|
|
|
|
/* apply actions even if not alerting */
|
|
|
|
|
DetectSignatureApplyActions(p, s);
|
|
|
|
|
DetectSignatureApplyActions(p, s, alert_flags);
|
|
|
|
|
}
|
|
|
|
|
next:
|
|
|
|
|
DetectVarProcessList(det_ctx, pflow, p);
|
|
|
|
|
@ -1446,7 +1446,8 @@ end:
|
|
|
|
|
|
|
|
|
|
/** \brief Apply action(s) and Set 'drop' sig info,
|
|
|
|
|
* if applicable */
|
|
|
|
|
void DetectSignatureApplyActions(Packet *p, const Signature *s)
|
|
|
|
|
void DetectSignatureApplyActions(Packet *p,
|
|
|
|
|
const Signature *s, const uint8_t alert_flags)
|
|
|
|
|
{
|
|
|
|
|
PACKET_UPDATE_ACTION(p, s->action);
|
|
|
|
|
|
|
|
|
|
@ -1456,6 +1457,14 @@ void DetectSignatureApplyActions(Packet *p, const Signature *s)
|
|
|
|
|
p->alerts.drop.action = s->action;
|
|
|
|
|
p->alerts.drop.s = (Signature *)s;
|
|
|
|
|
}
|
|
|
|
|
} else if (s->action & ACTION_PASS) {
|
|
|
|
|
/* if an stream/app-layer match we enforce the pass for the flow */
|
|
|
|
|
if ((p->flow != NULL) &&
|
|
|
|
|
(alert_flags & (PACKET_ALERT_FLAG_STATE_MATCH|PACKET_ALERT_FLAG_STREAM_MATCH)))
|
|
|
|
|
{
|
|
|
|
|
FlowSetNoPacketInspectionFlag(p->flow);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|