4a4a09
diff -up lua-5.3.4/src/lapi.c.bug6 lua-5.3.4/src/lapi.c
4a4a09
--- lua-5.3.4/src/lapi.c.bug6	2018-02-13 10:18:59.386451581 -0500
4a4a09
+++ lua-5.3.4/src/lapi.c	2018-02-13 10:19:42.700575448 -0500
4a4a09
@@ -533,6 +533,7 @@ LUA_API void lua_pushcclosure (lua_State
4a4a09
   lua_lock(L);
4a4a09
   if (n == 0) {
4a4a09
     setfvalue(L->top, fn);
4a4a09
+    api_incr_top(L);
4a4a09
   }
4a4a09
   else {
4a4a09
     CClosure *cl;
4a4a09
@@ -546,9 +547,9 @@ LUA_API void lua_pushcclosure (lua_State
4a4a09
       /* does not need barrier because closure is white */
4a4a09
     }
4a4a09
     setclCvalue(L, L->top, cl);
4a4a09
+    api_incr_top(L);
4a4a09
+    luaC_checkGC(L);
4a4a09
   }
4a4a09
-  api_incr_top(L);
4a4a09
-  luaC_checkGC(L);
4a4a09
   lua_unlock(L);
4a4a09
 }
4a4a09