diff -up haproxy-2.2.0/src/hlua.c.lua54 haproxy-2.2.0/src/hlua.c --- haproxy-2.2.0/src/hlua.c.lua54 2020-07-07 10:33:14.000000000 -0400 +++ haproxy-2.2.0/src/hlua.c 2020-07-10 15:21:50.415030526 -0400 @@ -1069,6 +1069,9 @@ void hlua_hook(lua_State *L, lua_Debug * */ static enum hlua_exec hlua_ctx_resume(struct hlua *lua, int yield_allowed) { +#if defined(LUA_VERSION_NUM) && LUA_VERSION_NUM >= 504 + int nres; +#endif int ret; const char *msg; const char *trace; @@ -1100,7 +1103,11 @@ resume_execution: lua->wake_time = TICK_ETERNITY; /* Call the function. */ +#if defined(LUA_VERSION_NUM) && LUA_VERSION_NUM >= 504 + ret = lua_resume(lua->T, gL.T, lua->nargs, &nres); +#else ret = lua_resume(lua->T, gL.T, lua->nargs); +#endif switch (ret) { case LUA_OK: @@ -7844,10 +7851,12 @@ static int hlua_load(char **args, int se memprintf(err, "Lua message handler error: %s\n", lua_tostring(gL.T, -1)); lua_pop(gL.T, 1); return -1; +#if defined(LUA_VERSION_NUM) && LUA_VERSION_NUM <= 503 case LUA_ERRGCMM: memprintf(err, "Lua garbage collector error: %s\n", lua_tostring(gL.T, -1)); lua_pop(gL.T, 1); return -1; +#endif default: memprintf(err, "Lua unknown error: %s\n", lua_tostring(gL.T, -1)); lua_pop(gL.T, 1);