summaryrefslogtreecommitdiff
path: root/Build
diff options
context:
space:
mode:
authorAkira Kakuto <kakuto@fuk.kindai.ac.jp>2019-02-19 23:32:00 +0000
committerAkira Kakuto <kakuto@fuk.kindai.ac.jp>2019-02-19 23:32:00 +0000
commit1c57a6242c474b156eeab8e290919a52c70a17c0 (patch)
treee9ce4cb3c3501af7826b0e9a99a2f41dafd2004c /Build
parent197fbea9e34baff3e1ddcb1027546da93b40180d (diff)
remove unused definitions
git-svn-id: svn://tug.org/texlive/trunk@50066 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build')
-rw-r--r--Build/source/texk/kpathsea/win32/ChangeLog5
-rw-r--r--Build/source/texk/kpathsea/win32/mktexlsr.c11
-rw-r--r--Build/source/texk/kpathsea/win32/mktexpk.c37
-rw-r--r--Build/source/texk/kpathsea/win32/mktextfm.c40
-rw-r--r--Build/source/texk/kpathsea/win32/mktexupdmain.c14
5 files changed, 63 insertions, 44 deletions
diff --git a/Build/source/texk/kpathsea/win32/ChangeLog b/Build/source/texk/kpathsea/win32/ChangeLog
index 9aa59ca389d..64e6311fc86 100644
--- a/Build/source/texk/kpathsea/win32/ChangeLog
+++ b/Build/source/texk/kpathsea/win32/ChangeLog
@@ -1,3 +1,8 @@
+2019-02-20 Akira Kakuto <kakuto@w32tex.org>
+
+ * mktexpk.c: Remove unused definitions.
+ * mktexlsr.c, matextfm.c, mktexupdmain.c: Avoid buffer overflow.
+
2017-06-11 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
* mktexfmt.c: Use fmtutil-user for consistency with other platforms.
diff --git a/Build/source/texk/kpathsea/win32/mktexlsr.c b/Build/source/texk/kpathsea/win32/mktexlsr.c
index 5a299a3ca07..6273ed55949 100644
--- a/Build/source/texk/kpathsea/win32/mktexlsr.c
+++ b/Build/source/texk/kpathsea/win32/mktexlsr.c
@@ -1,6 +1,6 @@
/* mktexlsr.c
- Copyright 2000, 2016 Akira Kakuto.
+ Copyright 2000, 2019 Akira Kakuto.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -28,6 +28,7 @@
#define HDL "%% ls-R -- filename database for kpathsea; do not change this line.\n"
#define VARTEXFONTS "c:/var/tex/fonts/ls-R"
+#define TBUF 512
FILE *ls_R;
@@ -36,7 +37,7 @@ search(char *name)
{
DIR *dp;
struct dirent *de;
- char buff[256];
+ char buff[TBUF];
int len;
normalize (name);
@@ -103,7 +104,7 @@ char first_name[] = "./";
int main(int ac, char **av)
{
int cdrive, tdrive;
- char ls_R_name[512];
+ char ls_R_name[TBUF];
int i, numtree;
size_t len;
char *progname;
@@ -151,6 +152,10 @@ int main(int ac, char **av)
}
for(i = 0; i < numtree; i++) {
+ if (strlen(pathbuff[i]) > (TBUF - 6)) {
+ fprintf (stderr, "Too long a directory name.\n");
+ exit (100);
+ }
strcpy(ls_R_name, pathbuff[i]);
len = strlen(ls_R_name);
if(ls_R_name[len-1] != '/') strcat(ls_R_name, "/");
diff --git a/Build/source/texk/kpathsea/win32/mktexpk.c b/Build/source/texk/kpathsea/win32/mktexpk.c
index 9d89174bb12..86734fab9ca 100644
--- a/Build/source/texk/kpathsea/win32/mktexpk.c
+++ b/Build/source/texk/kpathsea/win32/mktexpk.c
@@ -1,6 +1,6 @@
/* mktexpk.c
- Copyright 2000, 2016 Akira Kakuto.
+ Copyright 2000, 2019 Akira Kakuto.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -49,9 +49,6 @@
#endif
#include "mktex.h"
-#define LLBUF 1024
-#define LBUF 512
-#define SBUF 512
#define TBUF 512
/*
@@ -216,10 +213,10 @@ get_designsize(char *tfname, char *dsiz)
int
main (int ac, char **av)
{
- static char execfile[SBUF];
- char rbuff[LBUF];
- char buff[LBUF];
- char cmd[LBUF];
+ static char execfile[TBUF];
+ char rbuff[TBUF];
+ char buff[TBUF];
+ char cmd[TBUF];
char mfname[TBUF];
char tfname[TBUF];
char pkname[TBUF];
@@ -230,13 +227,13 @@ main (int ac, char **av)
char bdpi[TBUF];
char mag[TBUF];
char mode[TBUF];
- char destdir[SBUF];
+ char destdir[TBUF];
char designsize[64];
char *arg[4];
- char currdir[SBUF];
- char kpsedot[SBUF];
+ char currdir[TBUF];
+ char kpsedot[TBUF];
char *tmp;
int cdrive, tdrive;
@@ -304,7 +301,7 @@ main (int ac, char **av)
normalize (tmp);
for (i = 0; i < 4; i++)
- arg[i] = (char *) malloc (SBUF);
+ arg[i] = (char *) malloc (TBUF);
kpse_set_program_name (av[0], NULL);
progname = kpse_program_name;
@@ -664,7 +661,7 @@ main (int ac, char **av)
if ((p[0] == '.') && (p[1] == '/') && (issetdest != 1))
issetdest = 2;
- fpp = _getcwd (currdir, SBUF);
+ fpp = _getcwd (currdir, TBUF);
if (!fpp) {
fprintf (stderr, "Failed to get current working directory.\n");
relmem (arg);
@@ -902,7 +899,7 @@ main (int ac, char **av)
goto do_ps2pk;
}
- while (fgets (rbuff, SBUF, fr)) {
+ while (fgets (rbuff, TBUF, fr)) {
if (rbuff[0] == '%' || rbuff[0] == '#' || rbuff[0] == '\n')
continue;
texname[0] = pfbname[0] = slant[0] = extend[0] = encname[0] = '\0';
@@ -942,10 +939,10 @@ main (int ac, char **av)
goto do_ps2pk;
} else {
char *q;
- char a[SBUF];
- char b[SBUF];
- char psname[SBUF];
- char pscommand[SBUF];
+ char a[TBUF];
+ char b[TBUF];
+ char psname[TBUF];
+ char pscommand[TBUF];
double slantval, extendval;
texname[0] = pfbname[0] = encname[0] = '\0';
@@ -967,7 +964,7 @@ main (int ac, char **av)
tpkerr ("Cannot open ps2pk.map to read.");
goto do_ps2pk;
}
- while ((ret=ffgets (rbuff, LBUF, fr)) != FFILE_END) {
+ while ((ret=ffgets (rbuff, TBUF, fr)) != FFILE_END) {
if(ret == BBUFF_FUL) {
fprintf(stderr, "A line in ps2pk.map seems to be too long.\n");
fprintf(stderr, "I try to continue. But something may be wrong.\n");
@@ -1289,7 +1286,7 @@ skip flag
return (100);
}
- while ((i = (int)fread (rbuff, 1, LBUF, fr)))
+ while ((i = (int)fread (rbuff, 1, TBUF, fr)))
fwrite (rbuff, 1, i, fw);
fclose (fr);
diff --git a/Build/source/texk/kpathsea/win32/mktextfm.c b/Build/source/texk/kpathsea/win32/mktextfm.c
index dd1258473cf..be53c7f8fa1 100644
--- a/Build/source/texk/kpathsea/win32/mktextfm.c
+++ b/Build/source/texk/kpathsea/win32/mktextfm.c
@@ -1,6 +1,6 @@
/* mktextfm.c
- Copyright 2000, 2016 Akira Kakuto.
+ Copyright 2000, 2019 Akira Kakuto.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -25,8 +25,6 @@
#endif
#include "mktex.h"
-#define LBUF 512
-#define SBUF 512
#define TBUF 512
char *progname;
@@ -71,16 +69,16 @@ relmem (char **v)
int
main (int ac, char **av)
{
- char rbuff[LBUF];
- char buff[SBUF];
- char savebuff[SBUF];
- char cmd[LBUF];
+ char rbuff[TBUF];
+ char buff[TBUF];
+ char savebuff[TBUF];
+ char cmd[TBUF];
char mffile[TBUF];
char *arg[4];
- static char execfile[SBUF];
+ static char execfile[TBUF];
- char kpsedot[SBUF];
- char currdir[SBUF];
+ char kpsedot[TBUF];
+ char currdir[TBUF];
char *tmp;
int cdrive, tdrive;
@@ -89,10 +87,10 @@ main (int ac, char **av)
int i, savo, savi;
char *p, *fp, *fpp;
int issetdest;
- char fontname[SBUF];
+ char fontname[TBUF];
- char texbindir[512];
- char fullbin[512];
+ char texbindir[TBUF];
+ char fullbin[TBUF];
kpse_set_program_name (av[0], NULL);
progname = kpse_program_name;
@@ -159,7 +157,7 @@ issetdest = 2 : current directory
}
for (i = 0; i < 4; i++)
- arg[i] = (char *) malloc (SBUF);
+ arg[i] = (char *) malloc (TBUF);
if ((!strcmp (av[1], "--destdir")) || (!strcmp (av[1], "-destdir"))) {
if (ac != 4) {
@@ -169,6 +167,10 @@ issetdest = 2 : current directory
return (100);
}
issetdest = 1;
+ if (strlen(av[2]) > TBUF - 1 || strlen(av[3]) > TBUF - 1) {
+ fprintf (stderr, "Too long a string.\n");
+ return (100);
+ }
strcpy (buff, av[2]);
strcpy (fontname, av[3]);
for (p = buff; *p; p++) {
@@ -178,6 +180,10 @@ issetdest = 2 : current directory
*p = '/';
}
} else {
+ if (strlen(av[1]) > TBUF - 1) {
+ fprintf (stderr, "Too long a string.\n");
+ return (100);
+ }
strcpy (fontname, av[1]);
}
@@ -209,7 +215,7 @@ issetdest = 2 : current directory
return (100);
}
- fpp = _getcwd (currdir, SBUF);
+ fpp = _getcwd (currdir, TBUF);
if (!fpp) {
fprintf (stderr, "Failed to get current working directory.\n");
relmem (arg);
@@ -352,7 +358,7 @@ issetdest = 2 : current directory
return (100);
}
- while ((i = (int)fread (rbuff, 1, LBUF, fr)))
+ while ((i = (int)fread (rbuff, 1, TBUF, fr)))
fwrite (rbuff, 1, i, fw);
fclose (fr);
fclose (fw);
@@ -390,7 +396,7 @@ issetdest = 2 : current directory
free(tmp);
return (100);
}
- while ((i = (int)fread (rbuff, 1, LBUF, fr)))
+ while ((i = (int)fread (rbuff, 1, TBUF, fr)))
fwrite (rbuff, 1, i, fw);
fclose (fr);
fclose (fw);
diff --git a/Build/source/texk/kpathsea/win32/mktexupdmain.c b/Build/source/texk/kpathsea/win32/mktexupdmain.c
index 3a52ee3bdce..ccc2fdea642 100644
--- a/Build/source/texk/kpathsea/win32/mktexupdmain.c
+++ b/Build/source/texk/kpathsea/win32/mktexupdmain.c
@@ -1,6 +1,6 @@
/* mktexupdmain.c
- Copyright 2000, 2016 Akira Kakuto.
+ Copyright 2000, 2019 Akira Kakuto.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -19,11 +19,13 @@
#include <kpathsea/kpathsea.h>
#include "mktex.h"
+#define TBUF 512
+
int main(int argc, char **argv)
{
- char dir[256];
- char file[256];
- char path[256];
+ char dir[TBUF];
+ char file[TBUF];
+ char path[TBUF];
size_t i;
kpse_set_program_name (argv[0], NULL);
@@ -31,6 +33,10 @@ int main(int argc, char **argv)
fprintf(stderr, "%s:: usage: %s DIR FILE\n", argv[0], argv[0]);
return 1;
}
+ if (strlen(argv[1]) + strlen(argv[2]) > TBUF - 2) {
+ fprintf (stderr, "Too long a string.\n");
+ exit (100);
+ }
strcpy(dir, argv[1]);
strcpy(file, argv[2]);
normalize (dir);