aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2021-08-24 15:25:02 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2021-08-24 15:25:02 +0100
commitaf4fca4b2a5543bc3838897fa603af2e0cdc210c (patch)
treea903de02abe72a37db75887606b8c651c06bb7d9
parent73280f3dab76021bd7f04c35448d709cbfb35537 (diff)
downloadrspamd-af4fca4b2a5543bc3838897fa603af2e0cdc210c.tar.gz
rspamd-af4fca4b2a5543bc3838897fa603af2e0cdc210c.zip
[Minor] Configwizard: Fix usage when the config is wrong
-rw-r--r--lualib/rspamadm/configwizard.lua3
-rw-r--r--src/lua/lua_config.c19
2 files changed, 14 insertions, 8 deletions
diff --git a/lualib/rspamadm/configwizard.lua b/lualib/rspamadm/configwizard.lua
index bd7cd37c0..7c2d67cb5 100644
--- a/lualib/rspamadm/configwizard.lua
+++ b/lualib/rspamadm/configwizard.lua
@@ -696,7 +696,6 @@ return {
local args = opts['checks'] or {}
local _r,err = rspamd_config:load_ucl(opts['config'])
- local cfg = rspamd_config:get_ucl()
if not _r then
rspamd_logger.errx('cannot parse %s: %s', opts['config'], err)
@@ -709,6 +708,8 @@ return {
os.exit(1)
end
+ local cfg = rspamd_config:get_ucl()
+
if not rspamd_config:init_modules() then
rspamd_logger.errx('cannot init modules when parsing %s', opts['config'])
os.exit(1)
diff --git a/src/lua/lua_config.c b/src/lua/lua_config.c
index b0e2df672..c6660852a 100644
--- a/src/lua/lua_config.c
+++ b/src/lua/lua_config.c
@@ -1092,13 +1092,18 @@ lua_config_get_ucl (lua_State * L)
lua_rawgeti (L, LUA_REGISTRYINDEX, cached->ref);
}
else {
- ucl_object_push_lua (L, cfg->rcl_obj, true);
- lua_pushvalue (L, -1);
- cached = rspamd_mempool_alloc (cfg->cfg_pool, sizeof (*cached));
- cached->L = L;
- cached->ref = luaL_ref (L, LUA_REGISTRYINDEX);
- rspamd_mempool_set_variable (cfg->cfg_pool, "ucl_cached",
- cached, lua_config_ucl_dtor);
+ if (cfg->rcl_obj) {
+ ucl_object_push_lua(L, cfg->rcl_obj, true);
+ lua_pushvalue(L, -1);
+ cached = rspamd_mempool_alloc (cfg->cfg_pool, sizeof(*cached));
+ cached->L = L;
+ cached->ref = luaL_ref(L, LUA_REGISTRYINDEX);
+ rspamd_mempool_set_variable(cfg->cfg_pool, "ucl_cached",
+ cached, lua_config_ucl_dtor);
+ }
+ else {
+ lua_pushnil (L);
+ }
}
}
else {