From: firexinghe Date: Thu, 13 Jul 2023 03:03:34 +0000 (+0800) Subject: BUG/MINOR: hlua: add check for lua_newstate X-Git-Tag: v2.9-dev2~42 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bfff46f4112d978c0311ce57e0c90866994dac3e;p=thirdparty%2Fhaproxy.git BUG/MINOR: hlua: add check for lua_newstate Calling lual_newstate(Init main lua stack) in the hlua_init_state() function, the return value of lua_newstate() may be NULL (for example in case of OOM). In this case, L will be NULL, and then crash happens in lua_getextraspace(). So, we add a check for lua_newstate. This should be backported at least to 2.4, maybe further. --- diff --git a/src/hlua.c b/src/hlua.c index d228563e8d..0972964d9d 100644 --- a/src/hlua.c +++ b/src/hlua.c @@ -13120,6 +13120,13 @@ lua_State *hlua_init_state(int thread_num) /* Init main lua stack. */ L = lua_newstate(hlua_alloc, &hlua_global_allocator); + if (!L) { + fprintf(stderr, + "Lua init: critical error: lua_newstate() returned NULL." + " This may possibly be caused by a memory allocation error.\n"); + exit(1); + } + /* Initialise Lua context to NULL */ context = lua_getextraspace(L); *context = NULL;