engine/analyzer: check if file pointer exists before writing

de_ctx->ea->fp_engine_analysis_fp is only initialized if
engine-analysis.rules-fast-pattern is enabled in the configuration. If
this config param is missing, this leads to segfault.

Bug 7822
pull/13701/head
Shivani Bhardwaj 4 months ago
parent 03bc95c108
commit eb39dba5dd

@ -622,6 +622,7 @@ static void EngineAnalysisRulesPrintFP(const DetectEngineCtx *de_ctx, const Sign
void EngineAnalysisRulesFailure(
const DetectEngineCtx *de_ctx, const char *line, const char *file, int lineno)
{
if (de_ctx->ea->fp_engine_analysis_fp) {
fprintf(de_ctx->ea->fp_engine_analysis_fp, "== Sid: UNKNOWN ==\n");
fprintf(de_ctx->ea->fp_engine_analysis_fp, "%s\n", line);
fprintf(de_ctx->ea->fp_engine_analysis_fp, " FAILURE: invalid rule.\n");
@ -629,6 +630,7 @@ void EngineAnalysisRulesFailure(
fprintf(de_ctx->ea->fp_engine_analysis_fp, " Line: %d.\n", lineno);
fprintf(de_ctx->ea->fp_engine_analysis_fp, "\n");
}
}
typedef struct RuleAnalyzer {
SCJsonBuilder *js; /* document root */

Loading…
Cancel
Save