From e48d1dc2d9581c8fd1fa3f635b96fe64de7f8518 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Fri, 13 Aug 2021 14:11:17 +0200 Subject: [PATCH] BUG/MINOR: lua/filters: Return right code when txn:done() is called txn functions can now be called from an action or a filter context. Thus the return code must be adapted depending on this context. From an action, act.ABORT is returned. From a filter, -1 is returned. It is the filter error code. This bug only affects 2.5-dev. No backport needed. --- src/hlua.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/hlua.c b/src/hlua.c index 7e68d0b33..7eec25ce9 100644 --- a/src/hlua.c +++ b/src/hlua.c @@ -7482,7 +7482,10 @@ __LJMP static int hlua_txn_done(lua_State *L) if (!(s->flags & SF_FINST_MASK)) s->flags |= finst; - lua_pushinteger(L, ACT_RET_ABRT); + if ((htxn->flags & HLUA_TXN_CTX_MASK) == HLUA_TXN_FLT_CTX) + lua_pushinteger(L, -1); + else + lua_pushinteger(L, ACT_RET_ABRT); WILL_LJMP(hlua_done(L)); return 0; }