From: Aurelien DARRAGON Date: Wed, 5 Oct 2022 09:46:45 +0000 (+0200) Subject: MINOR: hlua: some luaL_checktype() calls were not guarded with MAY_LJMP X-Git-Tag: v2.7-dev8~55 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d83d045cda401caf505ea57384eea02aa4a70e01;p=thirdparty%2Fhaproxy.git MINOR: hlua: some luaL_checktype() calls were not guarded with MAY_LJMP In hlua code, we mark every function that may longjump using MAY_LJMP macro so it's easier to identify them by reading the code. However, some luaL_checktypes() were performed without the MAY_LJMP. According to lua doc: Functions called luaL_check* always raise an error if the check is not satisfied. -> Adding the missing MAY_LJMP for those luaLchecktypes() calls. No backport needed. --- diff --git a/src/hlua.c b/src/hlua.c index 1595368796..02cba1e602 100644 --- a/src/hlua.c +++ b/src/hlua.c @@ -8232,7 +8232,7 @@ __LJMP static int hlua_txn_reply_set_status(lua_State *L) const char *reason = MAY_LJMP(luaL_optlstring(L, 3, NULL, NULL)); /* First argument (self) must be a table */ - luaL_checktype(L, 1, LUA_TTABLE); + MAY_LJMP(luaL_checktype(L, 1, LUA_TTABLE)); if (status < 100 || status > 599) { lua_pushboolean(L, 0); @@ -8262,7 +8262,7 @@ __LJMP static int hlua_txn_reply_add_header(lua_State *L) int ret; /* First argument (self) must be a table */ - luaL_checktype(L, 1, LUA_TTABLE); + MAY_LJMP(luaL_checktype(L, 1, LUA_TTABLE)); /* Push in the stack the "headers" entry. */ ret = lua_getfield(L, 1, "headers"); @@ -8308,7 +8308,7 @@ __LJMP static int hlua_txn_reply_del_header(lua_State *L) int ret; /* First argument (self) must be a table */ - luaL_checktype(L, 1, LUA_TTABLE); + MAY_LJMP(luaL_checktype(L, 1, LUA_TTABLE)); /* Push in the stack the "headers" entry. */ ret = lua_getfield(L, 1, "headers"); @@ -8331,7 +8331,7 @@ __LJMP static int hlua_txn_reply_set_body(lua_State *L) const char *payload = MAY_LJMP(luaL_checkstring(L, 2)); /* First argument (self) must be a table */ - luaL_checktype(L, 1, LUA_TTABLE); + MAY_LJMP(luaL_checktype(L, 1, LUA_TTABLE)); lua_pushstring(L, payload); lua_setfield(L, 1, "body");