25 lines
1.1 KiB
Diff
25 lines
1.1 KiB
Diff
|
diff -up lua-5.4.0/src/lgc.c.CVE-2020-15889 lua-5.4.0/src/lgc.c
|
||
|
--- lua-5.4.0/src/lgc.c.CVE-2020-15889 2020-07-31 09:52:45.494753815 -0400
|
||
|
+++ lua-5.4.0/src/lgc.c 2020-07-31 09:54:24.556428702 -0400
|
||
|
@@ -1131,16 +1131,14 @@ static void finishgencycle (lua_State *L
|
||
|
|
||
|
|
||
|
/*
|
||
|
-** Does a young collection. First, mark 'OLD1' objects. (Only survival
|
||
|
-** and "recent old" lists can contain 'OLD1' objects. New lists cannot
|
||
|
-** contain 'OLD1' objects, at most 'OLD0' objects that were already
|
||
|
-** visited when marked old.) Then does the atomic step. Then,
|
||
|
-** sweep all lists and advance pointers. Finally, finish the collection.
|
||
|
+** Does a young collection. First, mark 'OLD1' objects. Then does the
|
||
|
+** atomic step. Then sweep all lists and advance pointers. Finally,
|
||
|
+** finish the collection.
|
||
|
*/
|
||
|
static void youngcollection (lua_State *L, global_State *g) {
|
||
|
GCObject **psurvival; /* to point to first non-dead survival object */
|
||
|
lua_assert(g->gcstate == GCSpropagate);
|
||
|
- markold(g, g->survival, g->reallyold);
|
||
|
+ markold(g, g->allgc, g->reallyold);
|
||
|
markold(g, g->finobj, g->finobjrold);
|
||
|
atomic(L);
|
||
|
|