profiling: allow absolute paths

Ticket #6490.
pull/11488/head
Victor Julien 2 years ago committed by Victor Julien
parent a404fd26af
commit 855cc89636

@ -32,6 +32,7 @@
#include "detect-engine.h"
#include "tm-threads.h"
#include "util-conf.h"
#include "util-path.h"
#include "util-time.h"
/**
@ -67,11 +68,13 @@ void SCProfilingKeywordsGlobalInit(void)
profiling_keyword_enabled = 1;
const char *filename = ConfNodeLookupChildValue(conf, "filename");
if (filename != NULL) {
const char *log_dir;
log_dir = ConfigGetLogDirectory();
snprintf(profiling_file_name, sizeof(profiling_file_name), "%s/%s",
log_dir, filename);
if (PathIsAbsolute(filename)) {
strlcpy(profiling_file_name, filename, sizeof(profiling_file_name));
} else {
const char *log_dir = ConfigGetLogDirectory();
snprintf(profiling_file_name, sizeof(profiling_file_name), "%s/%s", log_dir,
filename);
}
const char *v = ConfNodeLookupChildValue(conf, "append");
if (v == NULL || ConfValIsTrue(v)) {

@ -30,6 +30,7 @@
#ifdef PROFILING
#include "detect-engine-prefilter.h"
#include "util-conf.h"
#include "util-path.h"
#include "util-time.h"
typedef struct SCProfilePrefilterData_ {
@ -67,11 +68,13 @@ void SCProfilingPrefilterGlobalInit(void)
profiling_prefilter_enabled = 1;
const char *filename = ConfNodeLookupChildValue(conf, "filename");
if (filename != NULL) {
const char *log_dir;
log_dir = ConfigGetLogDirectory();
snprintf(profiling_file_name, sizeof(profiling_file_name), "%s/%s",
log_dir, filename);
if (PathIsAbsolute(filename)) {
strlcpy(profiling_file_name, filename, sizeof(profiling_file_name));
} else {
const char *log_dir = ConfigGetLogDirectory();
snprintf(profiling_file_name, sizeof(profiling_file_name), "%s/%s", log_dir,
filename);
}
const char *v = ConfNodeLookupChildValue(conf, "append");
if (v == NULL || ConfValIsTrue(v)) {

@ -29,6 +29,7 @@
#ifdef PROFILING
#include "util-conf.h"
#include "util-path.h"
#include "util-time.h"
/**
@ -70,11 +71,13 @@ void SCProfilingSghsGlobalInit(void)
profiling_sghs_enabled = 1;
const char *filename = ConfNodeLookupChildValue(conf, "filename");
if (filename != NULL) {
const char *log_dir;
log_dir = ConfigGetLogDirectory();
snprintf(profiling_file_name, sizeof(profiling_file_name),
"%s/%s", log_dir, filename);
if (PathIsAbsolute(filename)) {
strlcpy(profiling_file_name, filename, sizeof(profiling_file_name));
} else {
const char *log_dir = ConfigGetLogDirectory();
snprintf(profiling_file_name, sizeof(profiling_file_name), "%s/%s", log_dir,
filename);
}
const char *v = ConfNodeLookupChildValue(conf, "append");
if (v == NULL || ConfValIsTrue(v)) {

@ -29,6 +29,7 @@
#include "util-byte.h"
#include "util-conf.h"
#include "util-path.h"
#include "util-time.h"
#ifdef PROFILE_RULES
@ -139,12 +140,13 @@ void SCProfilingRulesGlobalInit(void)
}
const char *filename = ConfNodeLookupChildValue(conf, "filename");
if (filename != NULL) {
const char *log_dir;
log_dir = ConfigGetLogDirectory();
snprintf(profiling_file_name, sizeof(profiling_file_name),
"%s/%s", log_dir, filename);
if (PathIsAbsolute(filename)) {
strlcpy(profiling_file_name, filename, sizeof(profiling_file_name));
} else {
const char *log_dir = ConfigGetLogDirectory();
snprintf(profiling_file_name, sizeof(profiling_file_name), "%s/%s", log_dir,
filename);
}
const char *v = ConfNodeLookupChildValue(conf, "append");
if (v == NULL || ConfValIsTrue(v)) {

@ -36,6 +36,7 @@
#include "util-byte.h"
#include "util-profiling-locks.h"
#include "util-conf.h"
#include "util-path.h"
#ifndef MIN
#define MIN(a, b) (((a) < (b)) ? (a) : (b))
@ -172,11 +173,14 @@ SCProfilingInit(void)
const char *filename = ConfNodeLookupChildValue(conf, "filename");
if (filename != NULL) {
const char *log_dir;
log_dir = ConfigGetLogDirectory();
snprintf(profiling_packets_file_name, sizeof(profiling_packets_file_name),
"%s/%s", log_dir, filename);
if (PathIsAbsolute(filename)) {
strlcpy(profiling_packets_file_name, filename,
sizeof(profiling_packets_file_name));
} else {
const char *log_dir = ConfigGetLogDirectory();
snprintf(profiling_packets_file_name, sizeof(profiling_packets_file_name),
"%s/%s", log_dir, filename);
}
const char *v = ConfNodeLookupChildValue(conf, "append");
if (v == NULL || ConfValIsTrue(v)) {
@ -196,14 +200,20 @@ SCProfilingInit(void)
if (filename == NULL) {
filename = "packet_profile.csv";
}
if (PathIsAbsolute(filename)) {
profiling_csv_file_name = SCStrdup(filename);
if (unlikely(profiling_csv_file_name == NULL)) {
FatalError("out of memory");
}
} else {
profiling_csv_file_name = SCMalloc(PATH_MAX);
if (unlikely(profiling_csv_file_name == NULL)) {
FatalError("out of memory");
}
const char *log_dir = ConfigGetLogDirectory();
profiling_csv_file_name = SCMalloc(PATH_MAX);
if (unlikely(profiling_csv_file_name == NULL)) {
FatalError("out of memory");
const char *log_dir = ConfigGetLogDirectory();
snprintf(profiling_csv_file_name, PATH_MAX, "%s/%s", log_dir, filename);
}
snprintf(profiling_csv_file_name, PATH_MAX, "%s/%s", log_dir, filename);
packet_profile_csv_fp = fopen(profiling_csv_file_name, "w");
if (packet_profile_csv_fp == NULL) {

Loading…
Cancel
Save