From: Christopher Faulet Date: Fri, 7 Aug 2020 07:07:26 +0000 (+0200) Subject: BUG/MINOR: lua: Check argument type to convert it to IPv4/IPv6 arg validation X-Git-Tag: v2.3-dev3~22 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8e09ac8592cb35e11bff0f821db19369e0941e35;p=thirdparty%2Fhaproxy.git BUG/MINOR: lua: Check argument type to convert it to IPv4/IPv6 arg validation In hlua_lua2arg_check() function, before converting a string to an IP address, we must be to sure to have a string argument (ARGT_STR). This patch must be backported to all supported versions. --- diff --git a/src/hlua.c b/src/hlua.c index 8bc8319446..f99bdf9d20 100644 --- a/src/hlua.c +++ b/src/hlua.c @@ -741,6 +741,8 @@ __LJMP int hlua_lua2arg_check(lua_State *L, int first, struct arg *argp, break; case ARGT_IPV4: + if (argp[idx].type != ARGT_STR) + WILL_LJMP(luaL_argerror(L, first + idx, "string expected")); memcpy(trash.area, argp[idx].data.str.area, argp[idx].data.str.data); trash.area[argp[idx].data.str.data] = 0; @@ -759,6 +761,8 @@ __LJMP int hlua_lua2arg_check(lua_State *L, int first, struct arg *argp, break; case ARGT_IPV6: + if (argp[idx].type != ARGT_STR) + WILL_LJMP(luaL_argerror(L, first + idx, "string expected")); memcpy(trash.area, argp[idx].data.str.area, argp[idx].data.str.data); trash.area[argp[idx].data.str.data] = 0;