From bd6b865473522b51e06d55ce2acb2f0772412461 Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Fri, 17 Aug 2012 10:43:45 +0200 Subject: [PATCH] rule analyzer: fix fast pattern analyzer reporting wrong filename (same as rule analyzer). --- src/detect-engine-analyzer.c | 9 +++++---- src/detect-engine-analyzer.h | 4 ++-- src/detect.c | 10 +++++----- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/detect-engine-analyzer.c b/src/detect-engine-analyzer.c index 3f4776e075..2fd4ee76a8 100644 --- a/src/detect-engine-analyzer.c +++ b/src/detect-engine-analyzer.c @@ -36,13 +36,14 @@ static int rule_warnings_only = 0; static FILE *rule_engine_analysis_FD = NULL; static pcre *percent_re = NULL; static pcre_extra *percent_re_study = NULL; +static char log_path[PATH_MAX]; /** * \brief Sets up the rule analyzer according to the config * \retval 1 if rule analyzer successfully enabled * \retval 0 if not enabled */ -int SetupRuleAnalyzer(char *log_path) +int SetupRuleAnalyzer(void) { ConfNode *conf = ConfGetNode("engine-analysis"); int enabled = 0; @@ -58,10 +59,10 @@ int SetupRuleAnalyzer(char *log_path) char *log_dir; if (ConfGet("default-log-dir", &log_dir) != 1) log_dir = DEFAULT_LOG_DIR; - snprintf(log_path, 256, "%s/%s", log_dir, "rules_analysis.txt"); + snprintf(log_path, sizeof(log_path), "%s/%s", log_dir, "rules_analysis.txt"); rule_engine_analysis_FD = fopen(log_path, "w"); if (rule_engine_analysis_FD == NULL) { - SCLogError(SC_ERR_FOPEN, "ERROR: failed to open %s: %s", log_path, strerror(errno)); + SCLogError(SC_ERR_FOPEN, "failed to open %s: %s", log_path, strerror(errno)); return 0; } @@ -96,7 +97,7 @@ int SetupRuleAnalyzer(char *log_path) return 1; } -void CleanupRuleAnalyzer(char *log_path) { +void CleanupRuleAnalyzer(void) { if (rule_engine_analysis_FD != NULL) { SCLogInfo("Engine-Analyis for rules printed to file - %s", log_path); fclose(rule_engine_analysis_FD); diff --git a/src/detect-engine-analyzer.h b/src/detect-engine-analyzer.h index f3941767a1..93e491609a 100644 --- a/src/detect-engine-analyzer.h +++ b/src/detect-engine-analyzer.h @@ -26,8 +26,8 @@ #include -int SetupRuleAnalyzer(char *log_path); -void CleanupRuleAnalyzer (char *log_path); +int SetupRuleAnalyzer(void); +void CleanupRuleAnalyzer (void); int PerCentEncodingSetup (); int PerCentEncodingMatch (uint8_t *content, uint8_t content_len); void EngineAnalysisRules(Signature *s, char *line); diff --git a/src/detect.c b/src/detect.c index 122e4721b9..f577b80514 100644 --- a/src/detect.c +++ b/src/detect.c @@ -596,7 +596,7 @@ int SigLoadSignatures(DetectEngineCtx *de_ctx, char *sig_file, int sig_file_excl char *sfile = NULL; /* needed by engine_analysis */ - char log_path[256]; + char log_path[PATH_MAX]; if (engine_analysis) { if ((ConfGetBool("engine-analysis.rules-fast-pattern", @@ -610,11 +610,11 @@ int SigLoadSignatures(DetectEngineCtx *de_ctx, char *sig_file, int sig_file_excl char *log_dir; if (ConfGet("default-log-dir", &log_dir) != 1) log_dir = DEFAULT_LOG_DIR; - snprintf(log_path, 256, "%s/%s", log_dir, "rules_fast_pattern.txt"); + snprintf(log_path, sizeof(log_path), "%s/%s", log_dir, "rules_fast_pattern.txt"); fp_engine_analysis_FD = fopen(log_path, "w"); if (fp_engine_analysis_FD == NULL) { - SCLogError(SC_ERR_FOPEN, "ERROR: failed to open %s: %s", log_path, + SCLogError(SC_ERR_FOPEN, "failed to open %s: %s", log_path, strerror(errno)); return -1; } @@ -635,7 +635,7 @@ int SigLoadSignatures(DetectEngineCtx *de_ctx, char *sig_file, int sig_file_excl else { SCLogInfo("Engine-Analysis for fast_pattern disabled in conf file."); } - rule_engine_analysis_set = SetupRuleAnalyzer(log_path); + rule_engine_analysis_set = SetupRuleAnalyzer(); } /* ok, let's load signature files from the general config */ @@ -735,7 +735,7 @@ int SigLoadSignatures(DetectEngineCtx *de_ctx, char *sig_file, int sig_file_excl } } if (rule_engine_analysis_set) { - CleanupRuleAnalyzer(log_path); + CleanupRuleAnalyzer(); } }