return;
}
+
+void EngineAnalysisRulesFailure(char *line, char *file, int lineno)
+{
+ fprintf(rule_engine_analysis_FD, "== Sid: UNKNOWN ==\n");
+ fprintf(rule_engine_analysis_FD, "%s\n", line);
+ fprintf(rule_engine_analysis_FD, " FAILURE: invalid rule.\n");
+ fprintf(rule_engine_analysis_FD, " File: %s.\n", file);
+ fprintf(rule_engine_analysis_FD, " Line: %d.\n", lineno);
+ fprintf(rule_engine_analysis_FD, "\n");
+}
+
/**
* \brief Prints analysis of loaded rules.
*
void EngineAnalysisFP(Signature *s, char *line);
void EngineAnalysisRules(Signature *s, char *line);
+void EngineAnalysisRulesFailure(char *line, char *file, int lineno);
#endif /* __DETECT_ENGINE_ANALYZER_H__ */
} else {
SCLogError(SC_ERR_INVALID_SIGNATURE, "error parsing signature \"%s\" from "
"file %s at line %"PRId32"", line, sig_file, lineno - multiline);
+
+ if (rule_engine_analysis_set) {
+ EngineAnalysisRulesFailure(line, sig_file, lineno - multiline);
+ }
if (de_ctx->failure_fatal == 1) {
exit(EXIT_FAILURE);
}