From 1bf14a212143a6b0a834c20c956adbd9125586c2 Mon Sep 17 00:00:00 2001
From: Marko Lindqvist <cazfi74@gmail.com>
Date: Tue, 6 Jan 2026 17:04:09 +0200
Subject: [PATCH 55/55] Apply patch 1 for lua-5.5.0

See RM #1861

Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
---
 dependencies/lua-5.5/Version.txt | 1 +
 dependencies/lua-5.5/src/lapi.c  | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/dependencies/lua-5.5/Version.txt b/dependencies/lua-5.5/Version.txt
index 6784e51f3e..fc377a6af9 100644
--- a/dependencies/lua-5.5/Version.txt
+++ b/dependencies/lua-5.5/Version.txt
@@ -2,6 +2,7 @@ Sources here are from lua-5.5.0
 (http://www.lua.org/ftp/lua-5.5.0.tar.gz)
 
 Upstream bug fixes from https://www.lua.org/bugs.html applied:
+1
 
 Not entire lua distribution directory hierarchy is included here, and
 some files needed for Freeciv usage have been added.
diff --git a/dependencies/lua-5.5/src/lapi.c b/dependencies/lua-5.5/src/lapi.c
index 27fa524797..1ac78a5922 100644
--- a/dependencies/lua-5.5/src/lapi.c
+++ b/dependencies/lua-5.5/src/lapi.c
@@ -1205,6 +1205,8 @@ LUA_API int lua_gc (lua_State *L, int what, ...) {
       g->gcstp = 0;  /* allow GC to run (other bits must be zero here) */
       if (n <= 0)
         n = g->GCdebt;  /* force to run one basic step */
+      else if (g->GCdebt < n - MAX_LMEM)  /* overflow? */
+        n = MAX_LMEM + g->GCdebt;  /* trim 'n' (debt must be negative) */
       luaE_setdebt(g, g->GCdebt - n);
       luaC_condGC(L, (void)0, work = 1);
       if (work && g->gcstate == GCSpause)  /* end of cycle? */
-- 
2.51.0

