From 0b5ee95bbdb56df317b10c39437193ca69228919 Mon Sep 17 00:00:00 2001 From: Hironobu Yamashita Date: Sat, 22 Oct 2022 00:16:13 +0000 Subject: alephdir: sync with security fixes of tex.ch git-svn-id: svn://tug.org/texlive/trunk@64777 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/texk/web2c/alephdir/ChangeLog | 9 +++++++++ Build/source/texk/web2c/alephdir/com16bit.ch | 16 +++++++++++++++- Build/source/texk/web2c/alephdir/comsrcspec.ch | 8 +++++++- 3 files changed, 31 insertions(+), 2 deletions(-) (limited to 'Build/source/texk/web2c') diff --git a/Build/source/texk/web2c/alephdir/ChangeLog b/Build/source/texk/web2c/alephdir/ChangeLog index 25dc1713c20..d3fb8222e3f 100644 --- a/Build/source/texk/web2c/alephdir/ChangeLog +++ b/Build/source/texk/web2c/alephdir/ChangeLog @@ -1,3 +1,12 @@ +2022-10-22 Hironobu Yamashita + + * com16bit.ch: Sync with tex.ch changes: + - 2022-07-16 r63916 to disallow \noexpand\endwrite. + - 2021-07-22 r60013 explicit fmt loading error. + - 2022-09-28 r64547 protect against recursive --halt-on-error. + * comsrcspec.ch: Sync with tex.ch changes: + - 2022-09-28 r64547 protect against recursive --halt-on-error. + 2022-03-21 Karl Berry * TL'22 release. diff --git a/Build/source/texk/web2c/alephdir/com16bit.ch b/Build/source/texk/web2c/alephdir/com16bit.ch index 94d9f839398..7af53f518c2 100644 --- a/Build/source/texk/web2c/alephdir/com16bit.ch +++ b/Build/source/texk/web2c/alephdir/com16bit.ch @@ -1039,6 +1039,14 @@ begin input_ptr:=0; max_in_stack:=0; source_filename_stack[0]:=0;full_source_filename_stack[0]:=0; @z +% Original report: https://tex.stackexchange.com/questions/609423 +% TeX bug entry: https://tug.org/texmfbug/newbug.html#B155endwrite +@x [25.369] l.7717 - disallow \noexpand\endwrite +if t>=cs_token_flag then +@y +if (t>=cs_token_flag)and(t<>end_write_token) then +@z + @x [27.???] set limit when fatal_error else fatal_error("*** (cannot \read from terminal in nonstop modes)") @y @@ -2294,7 +2302,7 @@ format_debug('string pool checksum')(x); if x<>@$ then begin {check that strings are the same} wake_up_terminal; wterm_ln('---! ', stringcast(name_of_file+1), - ' made by different executable version'); + ' made by different executable version, strings are different'); goto bad_fmt; end; undump_int(x); @@ -2873,9 +2881,15 @@ system-dependent section allows easy integration of Web2c and e-\TeX, etc.) @ The |edit_name_start| will be set to point into |str_pool| somewhere after its beginning if \TeX\ is supposed to switch to an editor on exit. +Initialize the |stop_at_space| variable for filename parsing. + +Initialize the |halting_on_error_p| variable to avoid infloop with +\.{--halt-on-error}. + @= edit_name_start:=0; stop_at_space:=true; +halting_on_error_p:=false; @ These are used when we regenerate the representation of the first 256 strings. diff --git a/Build/source/texk/web2c/alephdir/comsrcspec.ch b/Build/source/texk/web2c/alephdir/comsrcspec.ch index 41ec7007f47..9a1680c4a6f 100644 --- a/Build/source/texk/web2c/alephdir/comsrcspec.ch +++ b/Build/source/texk/web2c/alephdir/comsrcspec.ch @@ -10,6 +10,7 @@ @!parse_first_line_p:cinttype; {parse the first line for options} @!file_line_error_style_p:cinttype; {format messages as file:line:error} @!halt_on_error_p:boolean; {allow only on error.} +@!halting_on_error_p:boolean; {already trying to halt?} @!src_specials_p : boolean; @!insert_src_special_auto : boolean; @@ -62,7 +63,12 @@ print_char("."); show_context; @y print_char("."); show_context; if (halt_on_error_p) then begin - history:=fatal_error_stop; jump_out; + {If |close_files_and_terminate| generates an error, we'll end up back + here; just give up in that case. If files are truncated, too bad.} + if (halting_on_error_p) then do_final_end; {quit immediately} + halting_on_error_p:=true; + history:=fatal_error_stop; + jump_out; end; @z -- cgit v1.2.3