From: rcombs Date: Mon, 25 Aug 2014 19:26:25 +0000 (-0400) Subject: fixed sc->output X-Git-Tag: 3.0.0-233~1419^2~7 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f072c3a9f0c813fd080bf9cac4c869a0c1f9565f;p=thirdparty%2Fsnort3.git fixed sc->output --- diff --git a/lua/snort.lua b/lua/snort.lua index 8c4e4ea4e..0675d9145 100644 --- a/lua/snort.lua +++ b/lua/snort.lua @@ -502,7 +502,7 @@ alert_fast = { } --alert_csv = { file = 'alert.csv' } -- to use -A lualert, this must be configured -lualert = { args = "foo = 'bar'" } +--lualert = { args = "foo = 'bar'" } -- pcap --log_tcpdump = { file = 'snort++.pcap' } diff --git a/src/main/snort_config.cc b/src/main/snort_config.cc index f0aaa4028..9cdf6f6a3 100644 --- a/src/main/snort_config.cc +++ b/src/main/snort_config.cc @@ -269,6 +269,9 @@ void SnortConfFree(SnortConfig *sc) if (sc->gtp_ports) free(sc->gtp_ports); + if ( sc->output ) + free(sc->output); + free_file_config(sc->file_config); if ( sc->var_list ) @@ -344,6 +347,7 @@ SnortConfig* MergeSnortConfs(SnortConfig *cmd_line, SnortConfig *config_file) // only set by cmd_line to override other conf output settings config_file->output = cmd_line->output; + cmd_line->output = nullptr; /* Merge checksum flags. If command line modified them, use from the * command line, else just use from config_file. */ diff --git a/src/main/snort_config.h b/src/main/snort_config.h index 3a3e9213c..a7be19831 100644 --- a/src/main/snort_config.h +++ b/src/main/snort_config.h @@ -147,7 +147,7 @@ struct SnortConfig char* respond_device; uint8_t *eth_dst; - const char* output; + char* output; //------------------------------------------------------ // attribute tables stuff diff --git a/src/managers/event_manager.cc b/src/managers/event_manager.cc index 19eac5cbe..1cb0766f0 100644 --- a/src/managers/event_manager.cc +++ b/src/managers/event_manager.cc @@ -175,7 +175,7 @@ void EventManager::instantiate( s_loggers.outputs.push_back(p->handler); } else - FatalError("logger has no type %s\n", p->api->base.name); + ParseError("logger has no type %s\n", p->api->base.name); } // command line outputs @@ -187,7 +187,7 @@ void EventManager::instantiate( if ( !mod || !p ) { - FatalError("unknown logger %s\n", name); + ParseError("unknown logger %s\n", name); return; } diff --git a/src/parser/config_file.cc b/src/parser/config_file.cc index 16d6cb0f5..dc8bae8da 100644 --- a/src/parser/config_file.cc +++ b/src/parser/config_file.cc @@ -61,15 +61,15 @@ #include "managers/event_manager.h" #include "detection/detect.h" -#define LOG_NONE "none" -#define LOG_TEXT "text" -#define LOG_PCAP "pcap" +#define LOG_NONE "none" +#define LOG_TEXT "text" +#define LOG_PCAP "pcap" -#define ALERT_NONE "none" -#define ALERT_CMG "cmg" -#define ALERT_JH "jh" -#define ALERT_DJR "djr" -#define ALERT_AJK "ajk" +#define ALERT_NONE "none" +#define ALERT_CMG "cmg" +#define ALERT_JH "jh" +#define ALERT_DJR "djr" +#define ALERT_AJK "ajk" #define OUTPUT_AJK "unified2" #define OUTPUT_CMG "alert_fast" @@ -270,7 +270,7 @@ void ConfigGTPDecoding(SnortConfig *sc, const char*) if (portObject) { - sc->gtp_ports = PortObjectCharPortArray(sc->gtp_ports,portObject, &numberOfPorts); + sc->gtp_ports = PortObjectCharPortArray(sc->gtp_ports,portObject, &numberOfPorts); } if (!sc->gtp_ports || (0 == numberOfPorts)) @@ -680,16 +680,16 @@ void config_alert_mode(SnortConfig* sc, const char* val) (strcasecmp(val, ALERT_JH) == 0) || (strcasecmp(val, ALERT_DJR) == 0)) { - sc->output = OUTPUT_CMG; + sc->output = SnortStrdup(OUTPUT_CMG); sc->output_flags |= OUTPUT_FLAG__SHOW_DATA_LINK; sc->output_flags |= OUTPUT_FLAG__APP_DATA; } else if (strcasecmp(val, ALERT_AJK) == 0) { - sc->output = OUTPUT_AJK; + sc->output = SnortStrdup(OUTPUT_AJK); } else - sc->output = val; + sc->output = SnortStrdup(val); } void config_log_mode(SnortConfig* sc, const char* val) @@ -706,7 +706,7 @@ void config_log_mode(SnortConfig* sc, const char* val) } else if (strcasecmp(val, LOG_PCAP) == 0) { - sc->output = OUTPUT_PCAP; + sc->output = SnortStrdup(OUTPUT_PCAP); set_main_hook(snort_log); } else