From c76a5af14aa2092936b412a29559098e0c56bbe5 Mon Sep 17 00:00:00 2001 From: Aki Tuomi Date: Fri, 26 Jun 2020 18:31:11 +0300 Subject: [PATCH] lib-lua: Register panic handler --- src/lib-lua/dlua-script.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/lib-lua/dlua-script.c b/src/lib-lua/dlua-script.c index d3e7746f4c..4d4140007f 100644 --- a/src/lib-lua/dlua-script.c +++ b/src/lib-lua/dlua-script.c @@ -122,6 +122,13 @@ int dlua_script_init(struct dlua_script *script, const char **error_r) return ret; } +static int dlua_atpanic(lua_State *L) +{ + struct dlua_script *script = dlua_script_from_state(L); + const char *error = lua_tostring(script->L, -1); + i_panic("Lua script '%s': %s", script->filename, error); +} + static struct dlua_script *dlua_create_script(const char *name, struct event *event_parent) { @@ -135,6 +142,7 @@ static struct dlua_script *dlua_create_script(const char *name, script->L = lua_newstate(dlua_alloc, script); i_assert(script->L != NULL); script->ref = 1; + lua_atpanic(script->L, dlua_atpanic); luaL_openlibs(script->L); script->event = event_create(event_parent); event_add_category(script->event, &event_category_lua); -- 2.47.3