From 8e09ac8592cb35e11bff0f821db19369e0941e35 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Fri, 7 Aug 2020 09:07:26 +0200 Subject: [PATCH] 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. --- src/hlua.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/hlua.c b/src/hlua.c index 8bc831944..f99bdf9d2 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;