texlive[57850] Build/source/texk/web2c: limit \numexpr recusion by

commits+karl at tug.org commits+karl at tug.org
Tue Feb 23 00:14:18 CET 2021


Revision: 57850
          http://tug.org/svn/texlive?view=revision&revision=57850
Author:   karl
Date:     2021-02-23 00:14:17 +0100 (Tue, 23 Feb 2021)
Log Message:
-----------
limit \numexpr recusion by expand_depth, like \number (from phelype)

Modified Paths:
--------------
    trunk/Build/source/texk/web2c/etexdir/ChangeLog
    trunk/Build/source/texk/web2c/etexdir/etex.ch
    trunk/Build/source/texk/web2c/pdftexdir/ChangeLog
    trunk/Build/source/texk/web2c/pdftexdir/pdftex.web
    trunk/Build/source/texk/web2c/xetexdir/ChangeLog
    trunk/Build/source/texk/web2c/xetexdir/xetex.web

Modified: trunk/Build/source/texk/web2c/etexdir/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/etexdir/ChangeLog	2021-02-22 22:36:03 UTC (rev 57849)
+++ trunk/Build/source/texk/web2c/etexdir/ChangeLog	2021-02-22 23:14:17 UTC (rev 57850)
@@ -1,3 +1,7 @@
+2021-02-22  Phelype Oleinik  <phe.h.o1 at gmail.com>
+
+	* etex.ch: avoid "expansion depth" overflow with \numexpr.
+
 2021-02-13  Karl Berry  <karl at freefriends.org>
 
 	* am/etex.am (etex_ch_srcs): adjust for split enctex changes.

Modified: trunk/Build/source/texk/web2c/etexdir/etex.ch
===================================================================
--- trunk/Build/source/texk/web2c/etexdir/etex.ch	2021-02-22 22:36:03 UTC (rev 57849)
+++ trunk/Build/source/texk/web2c/etexdir/etex.ch	2021-02-22 23:14:17 UTC (rev 57850)
@@ -5017,7 +5017,10 @@
 @!p:pointer; {top of expression stack}
 @!q:pointer; {for stack manipulations}
 begin l:=cur_val_level; a:=arith_error; b:=false; p:=null;
+incr(expand_depth_count);
+if expand_depth_count>=expand_depth then overflow("expansion depth",expand_depth);
 @<Scan and evaluate an expression |e| of type |l|@>;
+decr(expand_depth_count);
 if b then
   begin print_err("Arithmetic overflow");
 @.Arithmetic overflow@>

Modified: trunk/Build/source/texk/web2c/pdftexdir/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/pdftexdir/ChangeLog	2021-02-22 22:36:03 UTC (rev 57849)
+++ trunk/Build/source/texk/web2c/pdftexdir/ChangeLog	2021-02-22 23:14:17 UTC (rev 57850)
@@ -1,3 +1,7 @@
+2021-02-22  Phelype Oleinik  <phe.h.o1 at gmail.com>
+
+	* eobase.ch: avoid "expansion depth" overflow with \numexpr.
+
 2021-02-17  Karl Berry  <karl at tug.org>
 
         * NEWS,

Modified: trunk/Build/source/texk/web2c/pdftexdir/pdftex.web
===================================================================
--- trunk/Build/source/texk/web2c/pdftexdir/pdftex.web	2021-02-22 22:36:03 UTC (rev 57849)
+++ trunk/Build/source/texk/web2c/pdftexdir/pdftex.web	2021-02-22 23:14:17 UTC (rev 57850)
@@ -38618,7 +38618,10 @@
 @!p:pointer; {top of expression stack}
 @!q:pointer; {for stack manipulations}
 begin l:=cur_val_level; a:=arith_error; b:=false; p:=null;
+incr(expand_depth_count);
+if expand_depth_count>=expand_depth then overflow("expansion depth",expand_depth);
 @<Scan and evaluate an expression |e| of type |l|@>;
+decr(expand_depth_count);
 if b then
   begin print_err("Arithmetic overflow");
 @.Arithmetic overflow@>

Modified: trunk/Build/source/texk/web2c/xetexdir/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/xetexdir/ChangeLog	2021-02-22 22:36:03 UTC (rev 57849)
+++ trunk/Build/source/texk/web2c/xetexdir/ChangeLog	2021-02-22 23:14:17 UTC (rev 57850)
@@ -1,3 +1,7 @@
+2021-02-22  Phelype Oleinik  <phe.h.o1 at gmail.com>
+
+	* eobase.ch: avoid "expansion depth" overflow with \numexpr.
+
 2021-02-17  Karl Berry  <karl at tug.org>
 
         * NEWS,

Modified: trunk/Build/source/texk/web2c/xetexdir/xetex.web
===================================================================
--- trunk/Build/source/texk/web2c/xetexdir/xetex.web	2021-02-22 22:36:03 UTC (rev 57849)
+++ trunk/Build/source/texk/web2c/xetexdir/xetex.web	2021-02-22 23:14:17 UTC (rev 57850)
@@ -32966,7 +32966,10 @@
 @!p:pointer; {top of expression stack}
 @!q:pointer; {for stack manipulations}
 begin l:=cur_val_level; a:=arith_error; b:=false; p:=null;
+incr(expand_depth_count);
+if expand_depth_count>=expand_depth then overflow("expansion depth",expand_depth);
 @<Scan and evaluate an expression |e| of type |l|@>;
+decr(expand_depth_count);
 if b then
   begin print_err("Arithmetic overflow");
 @.Arithmetic overflow@>



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