diff --git a/userspace/falco/app_actions/init_outputs.cpp b/userspace/falco/app_actions/init_outputs.cpp index 459499da..3af5aeab 100644 --- a/userspace/falco/app_actions/init_outputs.cpp +++ b/userspace/falco/app_actions/init_outputs.cpp @@ -23,6 +23,11 @@ using namespace falco::app; application::run_result application::init_outputs() { + if (m_state->config->m_outputs.empty()) + { + return run_result::fatal("No outputs configured. Please configure at least one output file output enabled but no filename in configuration block"); + } + // read hostname std::string hostname; char* env_hostname = getenv("FALCO_HOSTNAME"); diff --git a/userspace/falco/app_actions/load_config.cpp b/userspace/falco/app_actions/load_config.cpp index 0982e8cb..2517cfb0 100644 --- a/userspace/falco/app_actions/load_config.cpp +++ b/userspace/falco/app_actions/load_config.cpp @@ -22,6 +22,7 @@ application::run_result application::load_config() { if (!m_options.conf_filename.empty()) { + m_state->config = std::make_shared(); m_state->config->init(m_options.conf_filename, m_options.cmdline_config_options); falco_logger::set_time_format_iso_8601(m_state->config->m_time_format_iso_8601); diff --git a/userspace/falco/application.cpp b/userspace/falco/application.cpp index e20f9e62..4e9fe17d 100644 --- a/userspace/falco/application.cpp +++ b/userspace/falco/application.cpp @@ -159,6 +159,8 @@ bool application::init(int argc, char **argv, std::string &errstr) m_state->cmdline += *arg; } + // initialize default config with cmdline overrides (-o option) + m_state->config->init(m_options.cmdline_config_options); m_initialized = true; return true; }