]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: hlua/init: coroutine may not resume itself
authorAurelien DARRAGON <adarragon@haproxy.com>
Fri, 8 Sep 2023 17:29:08 +0000 (19:29 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Tue, 12 Sep 2023 17:50:17 +0000 (19:50 +0200)
It's not supported to call lua_resume with <L> and <from> designating
the same lua coroutine. It didn't cause visible bugs so far because
Lua 5.3 used to be more permissive about this, and moreover, yielding
is not involved during the hlua init state.

But this is wrong usage, and the doc clearly specifies that the <from>
argument can be NULL when there is no such coroutine, which is the case
here.

This should be backported in every stable versions.

src/hlua.c

index b3c1b5da5b61349e7f5af125a423bfd9c329f488..e125eff828f971866ad9ddadcd83199fbf7c166d 100644 (file)
@@ -12872,9 +12872,9 @@ int hlua_post_init_state(lua_State *L)
                hlua_unref(L, init->function_ref);
 
 #if defined(LUA_VERSION_NUM) && LUA_VERSION_NUM >= 504
-               ret = lua_resume(L, L, 0, &nres);
+               ret = lua_resume(L, NULL, 0, &nres);
 #else
-               ret = lua_resume(L, L, 0);
+               ret = lua_resume(L, NULL, 0);
 #endif
                kind = NULL;
                switch (ret) {