iRemove code to read EPS data from a pipe. - enscript - GNU Enscript Err thinkerwim.openbsd.amsterdam 70 hgit clone git://thinkerwim.org/enscript.git URL:git://thinkerwim.org/enscript.git thinkerwim.org 70 1Log /git/enscript/log.gph thinkerwim.org 70 1Files /git/enscript/files.gph thinkerwim.org 70 1Refs /git/enscript/refs.gph thinkerwim.org 70 1README /git/enscript/file/README.gph thinkerwim.org 70 1LICENSE /git/enscript/file/COPYING.gph thinkerwim.org 70 i--- Err thinkerwim.openbsd.amsterdam 70 1commit a3e6bf57e48bb7434cdd590732e221fd2e0b4c17 /git/enscript/commit/a3e6bf57e48bb7434cdd590732e221fd2e0b4c17.gph thinkerwim.org 70 1parent 7a645c4af13dde9af9fc9b8730d3e73bcd453e13 /git/enscript/commit/7a645c4af13dde9af9fc9b8730d3e73bcd453e13.gph thinkerwim.org 70 hAuthor: Tim Retout URL:mailto:diocles@gnu.org thinkerwim.org 70 iDate: Sat, 28 Mar 2009 12:30:18 +0000 Err thinkerwim.openbsd.amsterdam 70 i Err thinkerwim.openbsd.amsterdam 70 iRemove code to read EPS data from a pipe. Err thinkerwim.openbsd.amsterdam 70 i Err thinkerwim.openbsd.amsterdam 70 iDiffstat: Err thinkerwim.openbsd.amsterdam 70 i M src/ChangeLog | 7 +++++++ Err thinkerwim.openbsd.amsterdam 70 i M src/psgen.c | 61 +++++++++++-------------------- Err thinkerwim.openbsd.amsterdam 70 i Err thinkerwim.openbsd.amsterdam 70 i2 files changed, 29 insertions(+), 39 deletions(-) Err thinkerwim.openbsd.amsterdam 70 i--- Err thinkerwim.openbsd.amsterdam 70 1diff --git a/src/ChangeLog b/src/ChangeLog /git/enscript/file/src/ChangeLog.gph thinkerwim.org 70 i@@ -1,3 +1,10 @@ Err thinkerwim.openbsd.amsterdam 70 i+2009-03-28 Tim Retout Err thinkerwim.openbsd.amsterdam 70 i+ Err thinkerwim.openbsd.amsterdam 70 i+ * psgen.c (recognize_eps_file): Remove ability to read EPS data Err thinkerwim.openbsd.amsterdam 70 i+ from a pipe, as this executes arbitrary commands. It has been Err thinkerwim.openbsd.amsterdam 70 i+ disabled in most distros for five years anyway. See Err thinkerwim.openbsd.amsterdam 70 i+ CAN-2004-1185. Err thinkerwim.openbsd.amsterdam 70 i+ Err thinkerwim.openbsd.amsterdam 70 i 2009-01-25 Tim Retout Err thinkerwim.openbsd.amsterdam 70 i Err thinkerwim.openbsd.amsterdam 70 i * main.c (main): Respect $HOME when searching for ~/.enscriptrc Err thinkerwim.openbsd.amsterdam 70 1diff --git a/src/psgen.c b/src/psgen.c /git/enscript/file/src/psgen.c.gph thinkerwim.org 70 i@@ -2376,6 +2376,7 @@ recognize_eps_file (Token *token) Err thinkerwim.openbsd.amsterdam 70 i { Err thinkerwim.openbsd.amsterdam 70 i int i; Err thinkerwim.openbsd.amsterdam 70 i char buf[4096]; Err thinkerwim.openbsd.amsterdam 70 i+ char *filename; Err thinkerwim.openbsd.amsterdam 70 i int line; Err thinkerwim.openbsd.amsterdam 70 i int valid_epsf; Err thinkerwim.openbsd.amsterdam 70 i float llx, lly, urx, ury; Err thinkerwim.openbsd.amsterdam 70 i@@ -2383,52 +2384,34 @@ recognize_eps_file (Token *token) Err thinkerwim.openbsd.amsterdam 70 i MESSAGE (2, (stderr, "^@epsf=\"%s\"\n", token->u.epsf.filename)); Err thinkerwim.openbsd.amsterdam 70 i Err thinkerwim.openbsd.amsterdam 70 i i = strlen (token->u.epsf.filename); Err thinkerwim.openbsd.amsterdam 70 i- if (i > 0 && token->u.epsf.filename[i - 1] == '|') Err thinkerwim.openbsd.amsterdam 70 i- { Err thinkerwim.openbsd.amsterdam 70 i- /* Read EPS data from pipe. */ Err thinkerwim.openbsd.amsterdam 70 i- token->u.epsf.pipe = 1; Err thinkerwim.openbsd.amsterdam 70 i- token->u.epsf.filename[i - 1] = '\0'; Err thinkerwim.openbsd.amsterdam 70 i- token->u.epsf.fp = popen (token->u.epsf.filename, "r"); Err thinkerwim.openbsd.amsterdam 70 i- if (token->u.epsf.fp == NULL) Err thinkerwim.openbsd.amsterdam 70 i- { Err thinkerwim.openbsd.amsterdam 70 i- MESSAGE (0, (stderr, Err thinkerwim.openbsd.amsterdam 70 i- _("epsf: couldn't open pipe to command \"%s\": %s\n"), Err thinkerwim.openbsd.amsterdam 70 i- token->u.epsf.filename, strerror (errno))); Err thinkerwim.openbsd.amsterdam 70 i- return 0; Err thinkerwim.openbsd.amsterdam 70 i- } Err thinkerwim.openbsd.amsterdam 70 i- } Err thinkerwim.openbsd.amsterdam 70 i- else Err thinkerwim.openbsd.amsterdam 70 i- { Err thinkerwim.openbsd.amsterdam 70 i- char *filename; Err thinkerwim.openbsd.amsterdam 70 i Err thinkerwim.openbsd.amsterdam 70 i- /* Read EPS data from file. */ Err thinkerwim.openbsd.amsterdam 70 i- filename = tilde_subst (token->u.epsf.filename); Err thinkerwim.openbsd.amsterdam 70 i+ /* Read EPS data from file. */ Err thinkerwim.openbsd.amsterdam 70 i+ filename = tilde_subst (token->u.epsf.filename); Err thinkerwim.openbsd.amsterdam 70 i Err thinkerwim.openbsd.amsterdam 70 i- token->u.epsf.fp = fopen (filename, "rb"); Err thinkerwim.openbsd.amsterdam 70 i- xfree (filename); Err thinkerwim.openbsd.amsterdam 70 i+ token->u.epsf.fp = fopen (filename, "rb"); Err thinkerwim.openbsd.amsterdam 70 i+ xfree (filename); Err thinkerwim.openbsd.amsterdam 70 i Err thinkerwim.openbsd.amsterdam 70 i- if (token->u.epsf.fp == NULL) Err thinkerwim.openbsd.amsterdam 70 i+ if (token->u.epsf.fp == NULL) Err thinkerwim.openbsd.amsterdam 70 i+ { Err thinkerwim.openbsd.amsterdam 70 i+ if (token->u.epsf.filename[0] != '/') Err thinkerwim.openbsd.amsterdam 70 i { Err thinkerwim.openbsd.amsterdam 70 i- if (token->u.epsf.filename[0] != '/') Err thinkerwim.openbsd.amsterdam 70 i- { Err thinkerwim.openbsd.amsterdam 70 i- /* Name is not absolute, let's lookup path. */ Err thinkerwim.openbsd.amsterdam 70 i- FileLookupCtx ctx; Err thinkerwim.openbsd.amsterdam 70 i+ /* Name is not absolute, let's lookup path. */ Err thinkerwim.openbsd.amsterdam 70 i+ FileLookupCtx ctx; Err thinkerwim.openbsd.amsterdam 70 i Err thinkerwim.openbsd.amsterdam 70 i- ctx.name = token->u.epsf.filename; Err thinkerwim.openbsd.amsterdam 70 i- ctx.suffix = ""; Err thinkerwim.openbsd.amsterdam 70 i- ctx.fullname = buffer_alloc (); Err thinkerwim.openbsd.amsterdam 70 i+ ctx.name = token->u.epsf.filename; Err thinkerwim.openbsd.amsterdam 70 i+ ctx.suffix = ""; Err thinkerwim.openbsd.amsterdam 70 i+ ctx.fullname = buffer_alloc (); Err thinkerwim.openbsd.amsterdam 70 i Err thinkerwim.openbsd.amsterdam 70 i- if (pathwalk (libpath, file_lookup, &ctx)) Err thinkerwim.openbsd.amsterdam 70 i- token->u.epsf.fp = fopen (buffer_ptr (ctx.fullname), "rb"); Err thinkerwim.openbsd.amsterdam 70 i+ if (pathwalk (libpath, file_lookup, &ctx)) Err thinkerwim.openbsd.amsterdam 70 i+ token->u.epsf.fp = fopen (buffer_ptr (ctx.fullname), "rb"); Err thinkerwim.openbsd.amsterdam 70 i Err thinkerwim.openbsd.amsterdam 70 i- buffer_free (ctx.fullname); Err thinkerwim.openbsd.amsterdam 70 i- } Err thinkerwim.openbsd.amsterdam 70 i- if (token->u.epsf.fp == NULL) Err thinkerwim.openbsd.amsterdam 70 i- { Err thinkerwim.openbsd.amsterdam 70 i- MESSAGE (0, (stderr, _("couldn't open EPS file \"%s\": %s\n"), Err thinkerwim.openbsd.amsterdam 70 i- token->u.epsf.filename, strerror (errno))); Err thinkerwim.openbsd.amsterdam 70 i- return 0; Err thinkerwim.openbsd.amsterdam 70 i- } Err thinkerwim.openbsd.amsterdam 70 i+ buffer_free (ctx.fullname); Err thinkerwim.openbsd.amsterdam 70 i+ } Err thinkerwim.openbsd.amsterdam 70 i+ if (token->u.epsf.fp == NULL) Err thinkerwim.openbsd.amsterdam 70 i+ { Err thinkerwim.openbsd.amsterdam 70 i+ MESSAGE (0, (stderr, _("couldn't open EPS file \"%s\": %s\n"), Err thinkerwim.openbsd.amsterdam 70 i+ token->u.epsf.filename, strerror (errno))); Err thinkerwim.openbsd.amsterdam 70 i+ return 0; Err thinkerwim.openbsd.amsterdam 70 i } Err thinkerwim.openbsd.amsterdam 70 i } Err thinkerwim.openbsd.amsterdam 70 i Err thinkerwim.openbsd.amsterdam 70 .