mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-10 00:57:02 +02:00
BUG/MINOR: lua: Some lua init operation are processed unsafe
Operation luaL_openlibs() and lua_prepend path are processed whithout the safe context, so in case of failure Haproxy aborts or stops without error message. This patch could be backported until 1.8
This commit is contained in:
parent
13d08b73eb
commit
2f05cc6f86
20
src/hlua.c
20
src/hlua.c
@ -8221,6 +8221,16 @@ void hlua_init(void)
|
||||
* process of HAProxy, this abort() is tolerated.
|
||||
*/
|
||||
|
||||
/* Set safe environment for the initialisation. */
|
||||
if (!SET_SAFE_LJMP(gL.T)) {
|
||||
if (lua_type(gL.T, -1) == LUA_TSTRING)
|
||||
error_msg = lua_tostring(gL.T, -1);
|
||||
else
|
||||
error_msg = "critical error";
|
||||
fprintf(stderr, "Lua init: %s.\n", error_msg);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/* Initialise lua. */
|
||||
luaL_openlibs(gL.T);
|
||||
#define HLUA_PREPEND_PATH_TOSTRING1(x) #x
|
||||
@ -8234,16 +8244,6 @@ void hlua_init(void)
|
||||
#undef HLUA_PREPEND_PATH_TOSTRING
|
||||
#undef HLUA_PREPEND_PATH_TOSTRING1
|
||||
|
||||
/* Set safe environment for the initialisation. */
|
||||
if (!SET_SAFE_LJMP(gL.T)) {
|
||||
if (lua_type(gL.T, -1) == LUA_TSTRING)
|
||||
error_msg = lua_tostring(gL.T, -1);
|
||||
else
|
||||
error_msg = "critical error";
|
||||
fprintf(stderr, "Lua init: %s.\n", error_msg);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/*
|
||||
*
|
||||
* Create "core" object.
|
||||
|
Loading…
Reference in New Issue
Block a user