summaryrefslogtreecommitdiff
path: root/Build/source/texk/dvipsk
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-12-21 01:44:39 +0000
committerKarl Berry <karl@freefriends.org>2009-12-21 01:44:39 +0000
commitf06671f268d0020a7e84a3e34ef58849c43ca442 (patch)
tree2410f778995b8551416b40aaa5c1258f2ab9426d /Build/source/texk/dvipsk
parent21792b141434f0992e16e0eb593834cf394350e6 (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/ChangeLog9
-rw-r--r--Build/source/texk/dvipsk/dospecial.c37
-rw-r--r--Build/source/texk/dvipsk/protos.h1
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 */