diff options
author | Karl Berry <karl@freefriends.org> | 2009-12-21 01:44:39 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2009-12-21 01:44:39 +0000 |
commit | f06671f268d0020a7e84a3e34ef58849c43ca442 (patch) | |
tree | 2410f778995b8551416b40aaa5c1258f2ab9426d /Build/source/texk/dvipsk | |
parent | 21792b141434f0992e16e0eb593834cf394350e6 (diff) |
warn about and do not process iff2ps and tek2ps specials, so we can avoid executing external programs (report/patch from Alexander/Akira)
git-svn-id: svn://tug.org/texlive/trunk@16465 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/dvipsk')
-rw-r--r-- | Build/source/texk/dvipsk/ChangeLog | 9 | ||||
-rw-r--r-- | Build/source/texk/dvipsk/dospecial.c | 37 | ||||
-rw-r--r-- | Build/source/texk/dvipsk/protos.h | 1 |
3 files changed, 12 insertions, 35 deletions
diff --git a/Build/source/texk/dvipsk/ChangeLog b/Build/source/texk/dvipsk/ChangeLog index e2a23921888..c02ace0ff75 100644 --- a/Build/source/texk/dvipsk/ChangeLog +++ b/Build/source/texk/dvipsk/ChangeLog @@ -1,3 +1,12 @@ +2009-12-21 Karl Berry <karl@tug.org> + + * protos.h (fil2ps): remove decl. + * dospecial.c (fil2ps): remove fn. + (dospecial): warn if iff2ps or tek2ps specials are noticed. + The goal here was to avoid executing external programs, with that + inhererent security risk, when (we believe) no one is actually + using the functionality. + 2009-12-14 Karl Berry <karl@tug.org> * emspecial.c (emspecial): diff --git a/Build/source/texk/dvipsk/dospecial.c b/Build/source/texk/dvipsk/dospecial.c index 10acf14d503..8f0a352d407 100644 --- a/Build/source/texk/dvipsk/dospecial.c +++ b/Build/source/texk/dvipsk/dospecial.c @@ -816,9 +816,9 @@ default: if(psfile[0]) { if (task == 0) { systemtype = (psfile[0]=='`') ; - figcopyfile(psfile+systemtype, systemtype); + figcopyfile(psfile+systemtype, systemtype) ; } else { - fil2ps(task, psfile) ; + fprintf (stderr, "dvips: iff2ps and tek2ps are not supported.\n") ; } } else if (psfilewanted #ifdef KPATHSEA @@ -827,38 +827,7 @@ default: ) specerror("No \\special psfile was given; figure will be blank") ; - cmdout("@endspecial"); -} - -void -fil2ps(const char *task, char *iname) -{ - char cmd[400] ; - FILE *f ; - if (0 != (f=search(pictpath, iname, "r"))) { - close_file(f) ; - } else { - fprintf(stderr, " couldn't open %s\n", iname) ; - return ; - } - if (!quiet) { - fprintf(stderr, " [%s", realnameoffile) ; - fflush(stderr) ; - } - if (oname && oname[0] && oname[0] != '-') { - putc(10, bitfile) ; - close_file(bitfile) ; - sprintf(cmd, "%s -f %s %s", task, realnameoffile, oname) ; - system(cmd) ; - if ((bitfile=fopen(oname, FOPEN_ABIN_MODE))==NULL) - error_with_perror ("! couldn't reopen PostScript file", oname) ; - linepos = 0 ; - } else { - sprintf(cmd, "%s -f %s", task, realnameoffile) ; - system(cmd) ; - } - if (!quiet) - fprintf(stderr, "]") ; + cmdout("@endspecial") ; } /* diff --git a/Build/source/texk/dvipsk/protos.h b/Build/source/texk/dvipsk/protos.h index b36b4d1e221..49fa7951ae1 100644 --- a/Build/source/texk/dvipsk/protos.h +++ b/Build/source/texk/dvipsk/protos.h @@ -43,7 +43,6 @@ extern char *GetKeyVal(char *str, int *tno); extern void predospecial(int numbytes, Boolean scanning); extern int maccess(char *s); extern void dospecial(int numbytes); -extern void fil2ps(const char *task, char *iname); extern float *bbdospecial(int nbytes); /* prototypes for functions from download.c */ |