texlive[73874] Build/source/texk/web2c/luatexdir: LuaTeX: Fix bugs in

commits+lscarso at tug.org commits+lscarso at tug.org
Tue Feb 11 09:28:38 CET 2025


Revision: 73874
          https://tug.org/svn/texlive?view=revision&revision=73874
Author:   lscarso
Date:     2025-02-11 09:28:38 +0100 (Tue, 11 Feb 2025)
Log Message:
-----------
LuaTeX: Fix bugs in "os.spawn" second argument (thanks to tex at maxchernoff.ca)

Modified Paths:
--------------
    trunk/Build/source/texk/web2c/luatexdir/lua/loslibext.c
    trunk/Build/source/texk/web2c/luatexdir/luatex_svnversion.h

Modified: trunk/Build/source/texk/web2c/luatexdir/lua/loslibext.c
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/lua/loslibext.c	2025-02-11 07:34:28 UTC (rev 73873)
+++ trunk/Build/source/texk/web2c/luatexdir/lua/loslibext.c	2025-02-11 08:28:38 UTC (rev 73874)
@@ -382,7 +382,7 @@
     *runcmd = NULL;
 
     for (j = 1;; j++) {
-        lua_rawgeti(L, -1, j);
+        lua_rawgeti(L, 1, j);
         if (lua_isnil(L, -1)) {
             lua_pop(L, 1);
             break;
@@ -394,7 +394,7 @@
     cmdline = malloc(sizeof(char *) * (unsigned) (j + 1));
     for (i = 1; i <= (unsigned) j; i++) {
         cmdline[i] = NULL;
-        lua_rawgeti(L, -1, (int) i);
+        lua_rawgeti(L, 1, (int) i);
         if (lua_isnil(L, -1) || (s = lua_tostring(L, -1)) == NULL) {
             lua_pop(L, 1);
             if (i == 1) {
@@ -410,7 +410,7 @@
     }
     cmdline[i] = NULL;
 
-    lua_rawgeti(L, -1, 0);
+    lua_rawgeti(L, 1, 0);
     if (lua_isnil(L, -1) || (s = lua_tostring(L, -1)) == NULL) {
 #ifdef _WIN32
         *runcmd = get_command_name(cmdline[0]);
@@ -546,12 +546,18 @@
                 val = lua_tostring(L, -1);
                 value = xmalloc((unsigned) (strlen(key) + strlen(val) + 2));
                 sprintf(value, "%s=%s", key, val);
-                envblock = xreallocarray(envblock, char*, size++ + 1);
+                envblock = xreallocarray(envblock, char*, size + 1);
                 envblock[size] = value;
+                size++;
             }
             lua_pop(L, 1);
         }
-        envblock[size++] = NULL;
+        if (envblock) {
+            envblock[size++] = NULL;
+        } else {
+            envblock = xmalloc(sizeof(char *));
+            envblock[0] = NULL;
+        }
     }
     /* If restrictedshell == 0, any command is allowed. */
     /* this is a little different from \write18/ os.execute processing

Modified: trunk/Build/source/texk/web2c/luatexdir/luatex_svnversion.h
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/luatex_svnversion.h	2025-02-11 07:34:28 UTC (rev 73873)
+++ trunk/Build/source/texk/web2c/luatexdir/luatex_svnversion.h	2025-02-11 08:28:38 UTC (rev 73874)
@@ -1,4 +1,4 @@
 #ifndef luatex_svn_revision_h
 #define luatex_svn_revision_h
-#define luatex_svn_revision 7664
+#define luatex_svn_revision 7665
 #endif



More information about the tex-live-commits mailing list.