texlive[74908] Build/source/texk/dvipdfm-x: object stream fix; test
commits+karl at tug.org
commits+karl at tug.org
Fri Apr 11 00:20:35 CEST 2025
Revision: 74908
https://tug.org/svn/texlive?view=revision&revision=74908
Author: karl
Date: 2025-04-11 00:20:35 +0200 (Fri, 11 Apr 2025)
Log Message:
-----------
object stream fix; test for this and the PDF group fix
Modified Paths:
--------------
trunk/Build/source/texk/dvipdfm-x/ChangeLog
trunk/Build/source/texk/dvipdfm-x/Makefile.am
trunk/Build/source/texk/dvipdfm-x/Makefile.in
trunk/Build/source/texk/dvipdfm-x/pdfobj.c
trunk/Build/source/texk/dvipdfm-x/xdvipdfm-psz.test
Added Paths:
-----------
trunk/Build/source/texk/dvipdfm-x/tests/rpki-ecosystem.drawio.pdf
trunk/Build/source/texk/dvipdfm-x/tests/xdvipdfm-pdfgroup-0318.pdf
trunk/Build/source/texk/dvipdfm-x/tests/xdvipdfm-pdfgroup.dvi
trunk/Build/source/texk/dvipdfm-x/tests/xdvipdfm-pdfgroup.tex
trunk/Build/source/texk/dvipdfm-x/tests/xdvipdfm-pdfobj.xdv
trunk/Build/source/texk/dvipdfm-x/xdvipdfm-pdf.test
Modified: trunk/Build/source/texk/dvipdfm-x/ChangeLog
===================================================================
--- trunk/Build/source/texk/dvipdfm-x/ChangeLog 2025-04-10 21:17:05 UTC (rev 74907)
+++ trunk/Build/source/texk/dvipdfm-x/ChangeLog 2025-04-10 22:20:35 UTC (rev 74908)
@@ -1,3 +1,22 @@
+2025-04-09 Karl Berry <karl at freefriends.org>
+
+ * pdfobj.c (pdf_get_object): fix possible seg fault in
+ object stream parsing. Report and patch from Shuqiao Zhang:
+ https://tug.org/pipermail/tex-live/2025-April/051444.html
+
+ * xdvipdfm-pdf.test: new test, for this (pdfobj) and the page
+ Group (pdfgroup) fix from Clerk ma.
+ * Makefile.am (tests): add it.
+ * tests/xdvipdfm-pdfobj.xdv,
+ * tests/xdvipdfm-pdfgroup.dvi: new test input files.
+ * tests/rpki-ecosystem.drawio.pdf,
+ * tests/xdvipdfm-pdfgroup-0318.pdf: inclusion files for the tests.
+
+2025-03-17 Clerk Ma <clerkma at gmail.com>
+
+ * epdf.c (pdf_include_page): check for the page Group being NULL
+ before dereferencing it. (r74687)
+
2025-03-17 TANAKA Takuji <ttk at t-lab.opal.ne.jp>
* vf.c: Store combining characters in vitual fonts with indices
@@ -6,6 +25,7 @@
* configure.ac: version 20250317.
2025-03-14 Max Chernoff <tex at maxchernoff.ca>
+
* pdffont.c: Switch to using only A-Z in the tag since numerical
digits are invalid per the PDF spec. Thanks to Yukimasa Morimi,
https://tug.org/pipermail/dvipdfmx/2025-March/000370.html
Modified: trunk/Build/source/texk/dvipdfm-x/Makefile.am
===================================================================
--- trunk/Build/source/texk/dvipdfm-x/Makefile.am 2025-04-10 21:17:05 UTC (rev 74907)
+++ trunk/Build/source/texk/dvipdfm-x/Makefile.am 2025-04-10 22:20:35 UTC (rev 74908)
@@ -1,7 +1,7 @@
## $Id$
## Makefile.am for the TeX Live subdirectory texk/dvipdfm-x/
##
-## Copyright 2015-2024 Karl Berry <tex-live at tug.org>
+## Copyright 2015-2025 Karl Berry <tex-live at tug.org>
## Copyright 2009-2015 Peter Breitenlohner <tex-live at tug.org>
## You may freely use, modify and/or distribute this file.
##
@@ -243,13 +243,15 @@
## Tests
##
TESTS = xdvipdfmx.test xdvipdfm-ann.test xdvipdfm-bad.test xdvipdfm-bb.test
-TESTS += xdvipdfm-bkm.test xdvipdfm-psz.test xdvipdfm-ptx.test xdvipdfm-res.test
+TESTS += xdvipdfm-bkm.test xdvipdfm-pdf.test xdvipdfm-psz.test
+TESTS += xdvipdfm-ptx.test xdvipdfm-res.test
TESTS += xdvipdfm-rev.test xdvipdfm-ttc.test
TESTS += dvipdfmx-upjf.test dvipdfmx-upjf2.test dvipdfmx-upjf3.test dvipdfmx-incl.test
TESTS += dvipdfmx-lmr0.test dvipdfmx-lmr1.test
TESTS += dvipdfmx-ttf0.test
xdvipdfmx.log xdvipdfm-ann.log xdvipdfm-bad.log xdvipdfm-bb.log \
- xdvipdfm-bkm.log xdvipdfm-psz.log xdvipdfm-ptx.log xdvipdfm-res.log \
+ xdvipdfm-bkm.log xdvipdfm-pdf.log xdvipdfm-psz.log \
+ xdvipdfm-ptx.log xdvipdfm-res.log \
xdvipdfm-rev.log xdvipdfm-ttc.log \
dvipdfmx-upjf.log dvipdfmx-upjf2.log dvipdfmx-upjf3.log dvipdfmx-incl.log \
dvipdfmx-lmr0.log dvipdfmx-lmr1.log \
@@ -279,6 +281,9 @@
## xdvipdfm-bkm.test
EXTRA_DIST += tests/bookm.dvi tests/bookm.tex
DISTCLEANFILES += bookm*.pdf
+## xdvipdfm-pdf.test
+EXTRA_DIST += tests/xdvipdfm-pdf.xdv tests/rpki-ecosystem.drawio.pdf
+DISTCLEANFILES += xdvipdfm-pdf*.pdf
## xdvipdfm-psz.test
EXTRA_DIST += tests/paper.dvi tests/paper.tex
DISTCLEANFILES += paper*.pdf
Modified: trunk/Build/source/texk/dvipdfm-x/Makefile.in
===================================================================
--- trunk/Build/source/texk/dvipdfm-x/Makefile.in 2025-04-10 21:17:05 UTC (rev 74907)
+++ trunk/Build/source/texk/dvipdfm-x/Makefile.in 2025-04-10 22:20:35 UTC (rev 74908)
@@ -828,16 +828,16 @@
cmapdatadir = $(datarootdir)/texmf-dist/fonts/cmap/dvipdfmx
dist_cmapdata_DATA = data/EUC-UCS2
DISTCLEANFILES = config.force image*.pdf xbmc*.pdf annot*.pdf pic*.* \
- bookm*.pdf paper*.pdf ptex*.pdf resrc*.pdf reverse.pdf \
- ttc*.pdf upjf.vf upjv.vf upjf-*.ofm upjv-*.ofm upjf-*.tfm \
- upjf_*.pdf upjf1_*.pdf upjf2_*.pdf upjf3_*.pdf multi_incl.pdf \
- lmr0-*.pdf cprm*.pdf
+ bookm*.pdf xdvipdfm-pdf*.pdf paper*.pdf ptex*.pdf resrc*.pdf \
+ reverse.pdf ttc*.pdf upjf.vf upjv.vf upjf-*.ofm upjv-*.ofm \
+ upjf-*.tfm upjf_*.pdf upjf1_*.pdf upjf2_*.pdf upjf3_*.pdf \
+ multi_incl.pdf lmr0-*.pdf cprm*.pdf
TESTS = xdvipdfmx.test xdvipdfm-ann.test xdvipdfm-bad.test \
- xdvipdfm-bb.test xdvipdfm-bkm.test xdvipdfm-psz.test \
- xdvipdfm-ptx.test xdvipdfm-res.test xdvipdfm-rev.test \
- xdvipdfm-ttc.test dvipdfmx-upjf.test dvipdfmx-upjf2.test \
- dvipdfmx-upjf3.test dvipdfmx-incl.test dvipdfmx-lmr0.test \
- dvipdfmx-lmr1.test dvipdfmx-ttf0.test
+ xdvipdfm-bb.test xdvipdfm-bkm.test xdvipdfm-pdf.test \
+ xdvipdfm-psz.test xdvipdfm-ptx.test xdvipdfm-res.test \
+ xdvipdfm-rev.test xdvipdfm-ttc.test dvipdfmx-upjf.test \
+ dvipdfmx-upjf2.test dvipdfmx-upjf3.test dvipdfmx-incl.test \
+ dvipdfmx-lmr0.test dvipdfmx-lmr1.test dvipdfmx-ttf0.test
EXTRA_DIST = $(TESTS) tests/dvipdfmx.cfg tests/psfonts.map \
tests/cmr10.pfb tests/cmr10.tfm tests/image.dvi \
tests/image.tex tests/xbmc.dvi tests/xbmc.tex \
@@ -851,6 +851,7 @@
tests/picjpeg.xbb tests/image.png tests/picpng.bb \
tests/picpng.xbb tests/image.pdf tests/picpdf.bb \
tests/picpdf.xbb tests/bookm.dvi tests/bookm.tex \
+ tests/xdvipdfm-pdf.xdv tests/rpki-ecosystem.drawio.pdf \
tests/paper.dvi tests/paper.tex tests/ptex.dvi tests/resrc.dvi \
tests/resrc.tex tests/reverse.dvi tests/ttc.dvi tests/ttc.tex \
tests/test.ttc tests/upjf.dvi tests/upjf.tex tests/upjf.map \
@@ -2056,7 +2057,8 @@
@ZLIB_RULE@
@LIBPAPER_RULE@
xdvipdfmx.log xdvipdfm-ann.log xdvipdfm-bad.log xdvipdfm-bb.log \
- xdvipdfm-bkm.log xdvipdfm-psz.log xdvipdfm-ptx.log xdvipdfm-res.log \
+ xdvipdfm-bkm.log xdvipdfm-pdf.log xdvipdfm-psz.log \
+ xdvipdfm-ptx.log xdvipdfm-res.log \
xdvipdfm-rev.log xdvipdfm-ttc.log \
dvipdfmx-upjf.log dvipdfmx-upjf2.log dvipdfmx-upjf3.log dvipdfmx-incl.log \
dvipdfmx-lmr0.log dvipdfmx-lmr1.log \
Modified: trunk/Build/source/texk/dvipdfm-x/pdfobj.c
===================================================================
--- trunk/Build/source/texk/dvipdfm-x/pdfobj.c 2025-04-10 21:17:05 UTC (rev 74907)
+++ trunk/Build/source/texk/dvipdfm-x/pdfobj.c 2025-04-10 22:20:35 UTC (rev 74908)
@@ -1,6 +1,6 @@
/* This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks.
- Copyright (C) 2002-2020 by Jin-Hwan Cho and Shunsaku Hirata,
+ Copyright (C) 2002-2025 by Jin-Hwan Cho and Shunsaku Hirata,
the dvipdfmx project team.
Copyright (C) 1998, 1999 by Mark A. Wicks <mwicks at kettering.edu>
@@ -3646,7 +3646,8 @@
length = pdf_stream_length(objstm);
p = (const char *) pdf_stream_dataptr(objstm) + first + data[2*index+1];
- q = p + (index == n-1 ? length : first+data[2*index+3]);
+ q = (const char *) pdf_stream_dataptr(objstm)
+ + (index == n-1 ? length : first+data[2*index+3]);
result = parse_pdf_object(&p, q, pf);
if (!result)
goto error;
Added: trunk/Build/source/texk/dvipdfm-x/tests/rpki-ecosystem.drawio.pdf
===================================================================
(Binary files differ)
Index: trunk/Build/source/texk/dvipdfm-x/tests/rpki-ecosystem.drawio.pdf
===================================================================
--- trunk/Build/source/texk/dvipdfm-x/tests/rpki-ecosystem.drawio.pdf 2025-04-10 21:17:05 UTC (rev 74907)
+++ trunk/Build/source/texk/dvipdfm-x/tests/rpki-ecosystem.drawio.pdf 2025-04-10 22:20:35 UTC (rev 74908)
Property changes on: trunk/Build/source/texk/dvipdfm-x/tests/rpki-ecosystem.drawio.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Build/source/texk/dvipdfm-x/tests/xdvipdfm-pdfgroup-0318.pdf
===================================================================
(Binary files differ)
Index: trunk/Build/source/texk/dvipdfm-x/tests/xdvipdfm-pdfgroup-0318.pdf
===================================================================
--- trunk/Build/source/texk/dvipdfm-x/tests/xdvipdfm-pdfgroup-0318.pdf 2025-04-10 21:17:05 UTC (rev 74907)
+++ trunk/Build/source/texk/dvipdfm-x/tests/xdvipdfm-pdfgroup-0318.pdf 2025-04-10 22:20:35 UTC (rev 74908)
Property changes on: trunk/Build/source/texk/dvipdfm-x/tests/xdvipdfm-pdfgroup-0318.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Build/source/texk/dvipdfm-x/tests/xdvipdfm-pdfgroup.dvi
===================================================================
(Binary files differ)
Index: trunk/Build/source/texk/dvipdfm-x/tests/xdvipdfm-pdfgroup.dvi
===================================================================
--- trunk/Build/source/texk/dvipdfm-x/tests/xdvipdfm-pdfgroup.dvi 2025-04-10 21:17:05 UTC (rev 74907)
+++ trunk/Build/source/texk/dvipdfm-x/tests/xdvipdfm-pdfgroup.dvi 2025-04-10 22:20:35 UTC (rev 74908)
Property changes on: trunk/Build/source/texk/dvipdfm-x/tests/xdvipdfm-pdfgroup.dvi
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/x-dvi
\ No newline at end of property
Added: trunk/Build/source/texk/dvipdfm-x/tests/xdvipdfm-pdfgroup.tex
===================================================================
--- trunk/Build/source/texk/dvipdfm-x/tests/xdvipdfm-pdfgroup.tex (rev 0)
+++ trunk/Build/source/texk/dvipdfm-x/tests/xdvipdfm-pdfgroup.tex 2025-04-10 22:20:35 UTC (rev 74908)
@@ -0,0 +1,8 @@
+% $Id$
+% Public domain. Test input file for xdvipdfm-pdf(group) test.
+% latex, dvipdfmx
+\documentclass[dvipdfmx]{article}
+\usepackage{graphicx}
+\begin{document}
+\includegraphics[width=4cm]{xdvipdfm-pdfgroup-0318.pdf}
+\end{document}
Property changes on: trunk/Build/source/texk/dvipdfm-x/tests/xdvipdfm-pdfgroup.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Date Author Id Revision
\ No newline at end of property
Added: trunk/Build/source/texk/dvipdfm-x/tests/xdvipdfm-pdfobj.xdv
===================================================================
(Binary files differ)
Index: trunk/Build/source/texk/dvipdfm-x/tests/xdvipdfm-pdfobj.xdv
===================================================================
--- trunk/Build/source/texk/dvipdfm-x/tests/xdvipdfm-pdfobj.xdv 2025-04-10 21:17:05 UTC (rev 74907)
+++ trunk/Build/source/texk/dvipdfm-x/tests/xdvipdfm-pdfobj.xdv 2025-04-10 22:20:35 UTC (rev 74908)
Property changes on: trunk/Build/source/texk/dvipdfm-x/tests/xdvipdfm-pdfobj.xdv
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Build/source/texk/dvipdfm-x/xdvipdfm-pdf.test
===================================================================
--- trunk/Build/source/texk/dvipdfm-x/xdvipdfm-pdf.test (rev 0)
+++ trunk/Build/source/texk/dvipdfm-x/xdvipdfm-pdf.test 2025-04-10 22:20:35 UTC (rev 74908)
@@ -0,0 +1,54 @@
+#! /bin/sh -vx
+# $Id$
+# Copyright 2025 Karl Berry <tex-live at tug.org>
+# You may freely use, modify and/or distribute this file.
+# PDF parsing reports.
+
+BinDir=${BinDir:-.}
+ExeExt=${ExeExt:-}
+_xdvipdfmx=$BinDir/xdvipdfmx$ExeExt
+
+TEXMFCNF=$srcdir/../kpathsea
+TFMFONTS="$srcdir/tests;$srcdir/data"
+T1FONTS="$srcdir/tests;$srcdir/data"
+TEXFONTMAPS="$srcdir/tests;$srcdir/data"
+DVIPDFMXINPUTS="$srcdir/tests;$srcdir/data"
+TEXPICTS=$srcdir/tests
+export TEXMFCNF TFMFONTS T1FONTS TEXFONTMAPS DVIPDFMXINPUTS TEXPICTS
+
+failed=
+
+# xdvipdfm-pdfobj: Object stream parsing bug. Original report from
+# Shuqiao Zhang,
+# https://tug.org/pipermail/tex-live/2025-April/051444.html
+# Unfortunately the bug is not reliably reproducible, as Zhang explains
+# in https://tug.org/pipermail/tex-live/2025-April/051447.html.
+
+# xdvipdfm-pdfgroup: Page group bug. Report and fix from Clerk Ma,
+# ca. 19 Mar 2025.
+
+for testfile in xdvipdfm-pdfobj.xdv xdvipdfm-pdfgroup.dvi; do
+ testin=$srcdir/tests/$testfile
+ testout=$testfile.pdf
+ #
+ # The pdfobj.xdv test includes a .pdf file, referenced as ./ in the
+ # .xdv, so have to copy it into the working directory.
+ cp $srcdir/tests/rpki-ecosystem.drawio.pdf . || exit 1
+ #
+ # By the way, the pdfgroup.dvi test includes the file
+ # xdvipdfm-pdfgroup-0318.pdf, but since that reference doesn't use
+ # "./", it can be found in srcdir/tests via TEXPICTS above.
+ #
+ cmd="$_xdvipdfmx $testin -o $testout"
+ echo "*** $cmd"
+ if $cmd && test -s $testout; then
+ echo "$testfile test OK"
+ else
+ failed="$failed $testfile"
+ fi
+done
+
+test -z "$failed" && exit 0
+echo
+echo "failed tests:$failed"
+exit 1
Property changes on: trunk/Build/source/texk/dvipdfm-x/xdvipdfm-pdf.test
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Date Author Id Revision
\ No newline at end of property
Modified: trunk/Build/source/texk/dvipdfm-x/xdvipdfm-psz.test
===================================================================
--- trunk/Build/source/texk/dvipdfm-x/xdvipdfm-psz.test 2025-04-10 21:17:05 UTC (rev 74907)
+++ trunk/Build/source/texk/dvipdfm-x/xdvipdfm-psz.test 2025-04-10 22:20:35 UTC (rev 74908)
@@ -1,6 +1,6 @@
#! /bin/sh -vx
# $Id$
-# Copyright 2017 Karl Berry <tex-live at tug.org>
+# Copyright 2017-2025 Karl Berry <tex-live at tug.org>
# Copyright 2013 Peter Breitenlohner <tex-live at tug.org>
# You may freely use, modify and/or distribute this file.
@@ -18,14 +18,16 @@
failed=
-echo "*** xdvipdfmx -v -m 1.0 -o paper2.pdf <paper.dvi" && echo \
+echo "*** xdvipdfmx -v -m 1.0 -o paper2.pdf <paper.dvi" \
&& $_xdvipdfmx -v -m 1.0 -o paper2.pdf <$srcdir/tests/paper.dvi \
- && echo && echo "xdvipdfmx-paper tests OK" && echo \
+ && test -s paper2.pdf \
+ && echo "xdvipdfmx-paper tests OK" && echo \
|| failed="$failed xdvipdfmx-paper"
-echo "*** xdvipdfmx -v -m 1.4 -o - paper >paper2m.pdf" && echo \
- && $_xdvipdfmx -v -m 1.4 -o - $srcdir/tests/paper >paper2m.pdf \
- && echo && echo "xdvipdfmx-paper-mag tests OK" && echo \
+echo "*** xdvipdfmx -v -m 1.4 -o paper2m.pdf paper" \
+ && $_xdvipdfmx -v -m 1.4 -o paper2m.pdf $srcdir/tests/paper \
+ && test -s paper2m.pdf \
+ && echo "xdvipdfmx-paper-mag tests OK" && echo \
|| failed="$failed xdvipdfmx-paper-mag"
test -z "$failed" && exit 0
More information about the tex-live-commits
mailing list.