From 6d712f0671cbc110939f4029090a486c1fa25e9a Mon Sep 17 00:00:00 2001 From: Hironobu Yamashita Date: Fri, 11 Mar 2022 22:35:23 +0000 Subject: dvi2tty: error exit in special case git-svn-id: svn://tug.org/texlive/trunk@62644 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/texk/dvi2tty/ChangeLog | 8 ++++++++ Build/source/texk/dvi2tty/dvi2tty-src/dvi2tty.c | 2 ++ Build/source/texk/dvi2tty/dvi2tty-src/dvi2tty.h | 1 + Build/source/texk/dvi2tty/dvi2tty-src/dvistuff.c | 1 + 4 files changed, 12 insertions(+) (limited to 'Build') diff --git a/Build/source/texk/dvi2tty/ChangeLog b/Build/source/texk/dvi2tty/ChangeLog index 7b9c85b3ab5..0708ef70ba7 100644 --- a/Build/source/texk/dvi2tty/ChangeLog +++ b/Build/source/texk/dvi2tty/ChangeLog @@ -1,3 +1,11 @@ +2022-03-11 TANAKA Takuji + + * dvi2tty.[ch], dvistuff.c: Error exit if fail to get font, + to avoid segmentation fault (do not occur in TeX-DVI, but + erroneously created in some situation). + https://github.com/aminophen/dviasm/issues/20 + https://github.com/texjporg/tex-jp-build/issues/138 + 2021-07-18 TANAKA Takuji * dvi2tty.c, disdvi.c: Apply patch of W32TeX by Kakuto-san. diff --git a/Build/source/texk/dvi2tty/dvi2tty-src/dvi2tty.c b/Build/source/texk/dvi2tty/dvi2tty-src/dvi2tty.c index f3a5b082f04..ac63c06d48e 100644 --- a/Build/source/texk/dvi2tty/dvi2tty-src/dvi2tty.c +++ b/Build/source/texk/dvi2tty/dvi2tty-src/dvi2tty.c @@ -751,6 +751,8 @@ void errorexit(int errorcode) case pipcr : fprintf(stderr, "Cannot create pipe to pager\n"); break; #endif + case bdfnt : fprintf(stderr, "Fail to get font information\n"); + break; default : fprintf(stderr, "Unkown error code\n"); break; }; diff --git a/Build/source/texk/dvi2tty/dvi2tty-src/dvi2tty.h b/Build/source/texk/dvi2tty/dvi2tty-src/dvi2tty.h index c77eaa56c77..497072f7181 100644 --- a/Build/source/texk/dvi2tty/dvi2tty-src/dvi2tty.h +++ b/Build/source/texk/dvi2tty/dvi2tty-src/dvi2tty.h @@ -96,6 +96,7 @@ Copyright (C) 1989-2010 M.J.E. Mol, MESA Consulting B.V." #if !defined(MSDOS) #define pipcr 20 /* cannot creat pipe */ #endif +#define bdfnt 21 /* fail to get font info */ diff --git a/Build/source/texk/dvi2tty/dvi2tty-src/dvistuff.c b/Build/source/texk/dvi2tty/dvi2tty-src/dvistuff.c index aa767cf45b8..dcb17129c1d 100644 --- a/Build/source/texk/dvi2tty/dvi2tty-src/dvistuff.c +++ b/Build/source/texk/dvi2tty/dvi2tty-src/dvistuff.c @@ -1073,6 +1073,7 @@ void dokanji(long ch) void dochar(unsigned char ch) { char flag; + if (!fnt) errorexit(bdfnt); flag = fnt->flags; if (nttj && fnt->fontnum) -- cgit v1.2.3