From 33b5d814d217ba9e6f93534ee0d50dd8d1975e57 Mon Sep 17 00:00:00 2001 From: Hironobu Yamashita Date: Tue, 12 Jan 2021 13:35:29 +0000 Subject: makejvf: let's see ... git-svn-id: svn://tug.org/texlive/trunk@57397 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/texk/makejvf/ChangeLog | 5 +++++ Build/source/texk/makejvf/main.c | 10 +++++----- 2 files changed, 10 insertions(+), 5 deletions(-) (limited to 'Build/source/texk/makejvf') diff --git a/Build/source/texk/makejvf/ChangeLog b/Build/source/texk/makejvf/ChangeLog index d32e657e2f8..5a6098fc40f 100644 --- a/Build/source/texk/makejvf/ChangeLog +++ b/Build/source/texk/makejvf/ChangeLog @@ -1,3 +1,8 @@ +2021-01-12 Hironobu Yamashita + + * main.c: Add size check to avoid segmentation fault. + https://tug.org/pipermail/tlbuild/2021q1/004796.html + 2020-04-12 TANAKA Takuji * main.c, write.c, makejvf.h: diff --git a/Build/source/texk/makejvf/main.c b/Build/source/texk/makejvf/main.c index 247a66257a0..e417e2a9090 100644 --- a/Build/source/texk/makejvf/main.c +++ b/Build/source/texk/makejvf/main.c @@ -115,7 +115,7 @@ int main(int argc, char ** argv) } atfmname = xstrdup(argv[optind]); - if (FILESTRCASEEQ(&atfmname[strlen(atfmname)-4], ".tfm")) { + if (strlen(atfmname)>=4 && FILESTRCASEEQ(&atfmname[strlen(atfmname)-4], ".tfm")) { atfmname[strlen(atfmname)-4] = '\0'; } @@ -125,7 +125,7 @@ int main(int argc, char ** argv) strcat(vfname,".vf"); vtfmname = xstrdup(argv[optind+1]); - if (FILESTRCASEEQ(&vtfmname[strlen(vtfmname)-4], ".tfm")) { + if (strlen(vtfmname)>=4 && FILESTRCASEEQ(&vtfmname[strlen(vtfmname)-4], ".tfm")) { vtfmname[strlen(vtfmname)-4] = '\0'; } if (FILESTRCASEEQ(&vtfmname[0], &atfmname_base[0])) { @@ -134,7 +134,7 @@ int main(int argc, char ** argv) } if (kanatfm) { - if (FILESTRCASEEQ(&kanatfm[strlen(kanatfm)-4], ".tfm")) { + if (strlen(kanatfm)>=4 && FILESTRCASEEQ(&kanatfm[strlen(kanatfm)-4], ".tfm")) { kanatfm[strlen(kanatfm)-4] = '\0'; } if (FILESTRCASEEQ(&kanatfm[0], &atfmname_base[0])) { @@ -168,7 +168,7 @@ int main(int argc, char ** argv) } if (jistfm) { - if (FILESTRCASEEQ(&jistfm[strlen(jistfm)-4], ".tfm")) { + if (strlen(jistfm)>=4 && FILESTRCASEEQ(&jistfm[strlen(jistfm)-4], ".tfm")) { jistfm[strlen(jistfm)-4] = '\0'; } if (FILESTRCASEEQ(&jistfm[0], &atfmname_base[0])) { @@ -178,7 +178,7 @@ int main(int argc, char ** argv) } if (ucsqtfm) { - if (FILESTRCASEEQ(&ucsqtfm[strlen(ucsqtfm)-4], ".tfm")) { + if (strlen(ucsqtfm)>=4 && FILESTRCASEEQ(&ucsqtfm[strlen(ucsqtfm)-4], ".tfm")) { ucsqtfm[strlen(ucsqtfm)-4] = '\0'; } if (FILESTRCASEEQ(&ucsqtfm[0], &atfmname_base[0])) { -- cgit v1.2.3