]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
detect/analyzer: fix json analyzer being called on incomplete rules
authorVictor Julien <victor@inliniac.net>
Thu, 18 Oct 2018 17:06:28 +0000 (19:06 +0200)
committerVictor Julien <victor@inliniac.net>
Thu, 18 Oct 2018 19:43:58 +0000 (21:43 +0200)
src/detect-engine-build.c
src/detect-engine-loader.c

index a0b632480fb99c119290feed3585a9961cfff755..82142f801c28ec4d3cc7f1a31b58715f289cc5ea 100644 (file)
@@ -1830,6 +1830,7 @@ int SigAddressPrepareStage4(DetectEngineCtx *de_ctx)
     SCReturnInt(0);
 }
 
+extern int rule_engine_analysis_set;
 /** \internal
  *  \brief perform final per signature setup tasks
  *
@@ -1855,6 +1856,11 @@ static int SigMatchPrepare(DetectEngineCtx *de_ctx)
             SigMatch *sm = s->init_data->smlists[type];
             s->sm_arrays[type] = SigMatchList2DataArray(sm);
         }
+        if (rule_engine_analysis_set) {
+#ifdef HAVE_LIBJANSSON
+            EngineAnalysisRules2(de_ctx, s);
+#endif
+        }
         /* free lists. Ctx' are xferred to sm_arrays so won't get freed */
         uint32_t i;
         for (i = 0; i < s->init_data->smlists_array_size; i++) {
index 235a9973502e88cdfe24c97dc4f5890cf0da589f..b27bf7f999fa3a82d7522df5d2b3729006a99ddf 100644 (file)
@@ -50,7 +50,7 @@
 extern int rule_reload;
 extern int engine_analysis;
 static int fp_engine_analysis_set = 0;
-static int rule_engine_analysis_set = 0;
+int rule_engine_analysis_set = 0;
 
 /**
  *  \brief Create the path if default-rule-path was specified
@@ -175,9 +175,6 @@ static int DetectLoadSigFile(DetectEngineCtx *de_ctx, char *sig_file,
                 }
                 if (rule_engine_analysis_set) {
                     EngineAnalysisRules(de_ctx, sig, line);
-#ifdef HAVE_LIBJANSSON
-                    EngineAnalysisRules2(de_ctx, sig);
-#endif
                 }
             }
             SCLogDebug("signature %"PRIu32" loaded", sig->id);