]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: hlua: some luaL_checktype() calls were not guarded with MAY_LJMP
authorAurelien DARRAGON <adarragon@haproxy.com>
Wed, 5 Oct 2022 09:46:45 +0000 (11:46 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Wed, 12 Oct 2022 07:22:05 +0000 (09:22 +0200)
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.

src/hlua.c

index 1595368796af76f2fafdd9523567f01faa420b08..02cba1e6026367dbbdf7c7407d11d0254931e03a 100644 (file)
@@ -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");