When prefilter is not enabled globally, it is still possible to
enable it per signature. This was broken however, as the setup
code would never be called.
This commit always call the setup code and lets that sort out
which signatures (if any) to enable prefiltering for.
{
BUG_ON(PatternMatchPrepareGroup(de_ctx, sgh) != 0);
- if (de_ctx->prefilter_setting == DETECT_PREFILTER_AUTO) {
- int i = 0;
- for (i = 0; i < DETECT_TBLSIZE; i++)
- {
- if (sigmatch_table[i].SetupPrefilter != NULL) {
- sigmatch_table[i].SetupPrefilter(sgh);
- }
+ /* set up engines if needed - independent of 'detect.prefilter.default'
+ * setting as the prefilter keyword may have enabled individual sigs */
+ for (int i = 0; i < DETECT_TBLSIZE; i++)
+ {
+ if (sigmatch_table[i].SetupPrefilter != NULL) {
+ sigmatch_table[i].SetupPrefilter(sgh);
}
}