From: Aki Tuomi Date: Fri, 26 Jun 2020 15:31:11 +0000 (+0300) Subject: lib-lua: Register panic handler X-Git-Tag: 2.3.11.2~13 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4c1b1766fe9bf7d933660b13e7d28408c44786d7;p=thirdparty%2Fdovecot%2Fcore.git lib-lua: Register panic handler --- 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);