From: Aurelien DARRAGON Date: Wed, 17 May 2023 08:38:50 +0000 (+0200) Subject: MINOR: hlua: hlua_smp2lua_str() may LJMP X-Git-Tag: v2.8-dev13~13 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=742b1a879710678293f70ebfce4e7c76a14a1f75;p=thirdparty%2Fhaproxy.git MINOR: hlua: hlua_smp2lua_str() may LJMP Add LJMP hint to hlua_smp2lua_str() prototype since it relies on functions (e.g.: lua_pushstring()) which may raise lua memory errors. --- diff --git a/src/hlua.c b/src/hlua.c index 4ad23f2e20..c3755d21cd 100644 --- a/src/hlua.c +++ b/src/hlua.c @@ -511,7 +511,7 @@ static int hlua_lua2arg(lua_State *L, int ud, struct arg *arg); __LJMP static int hlua_lua2arg_check(lua_State *L, int first, struct arg *argp, uint64_t mask, struct proxy *p); static int hlua_smp2lua(lua_State *L, struct sample *smp); -static int hlua_smp2lua_str(lua_State *L, struct sample *smp); +__LJMP static int hlua_smp2lua_str(lua_State *L, struct sample *smp); static int hlua_lua2smp(lua_State *L, int ud, struct sample *smp); __LJMP static int hlua_http_get_headers(lua_State *L, struct http_msg *msg); @@ -886,7 +886,7 @@ static int hlua_smp2lua(lua_State *L, struct sample *smp) * in Lua strings. This is useful to convert the return of the * fetches or converters. */ -static int hlua_smp2lua_str(lua_State *L, struct sample *smp) +__LJMP static int hlua_smp2lua_str(lua_State *L, struct sample *smp) { switch (smp->data.type) { @@ -4415,7 +4415,7 @@ __LJMP static int hlua_run_sample_fetch(lua_State *L) /* Convert the returned sample in lua value. */ if (hsmp->flags & HLUA_F_AS_STRING) - hlua_smp2lua_str(L, &smp); + MAY_LJMP(hlua_smp2lua_str(L, &smp)); else hlua_smp2lua(L, &smp); @@ -4546,7 +4546,7 @@ __LJMP static int hlua_run_sample_conv(lua_State *L) /* Convert the returned sample in lua value. */ if (hsmp->flags & HLUA_F_AS_STRING) - hlua_smp2lua_str(L, &smp); + MAY_LJMP(hlua_smp2lua_str(L, &smp)); else hlua_smp2lua(L, &smp); end: