From e6a9c88ada2f11dd61e4c4e39dff84944bed5787 Mon Sep 17 00:00:00 2001 From: Peter Breitenlohner Date: Tue, 10 Nov 2009 10:26:52 +0000 Subject: towards TL2010: texk/kpathsea git-svn-id: svn://tug.org/texlive/trunk@15963 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/texk/kpathsea/doc/kpathsea.texi | 37 ++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 5 deletions(-) (limited to 'Build/source/texk/kpathsea/doc/kpathsea.texi') diff --git a/Build/source/texk/kpathsea/doc/kpathsea.texi b/Build/source/texk/kpathsea/doc/kpathsea.texi index 371fad1f6f4..8c2af02124e 100644 --- a/Build/source/texk/kpathsea/doc/kpathsea.texi +++ b/Build/source/texk/kpathsea/doc/kpathsea.texi @@ -2,7 +2,7 @@ @setfilename kpathsea.info @settitle Kpathsea: A library for path searching -@set version 5.0.0 +@set version 5.1.0 @set month-year June 2009 @copying @@ -2394,6 +2394,33 @@ necessary (unless the search path specified @samp{!!}, etc.). In other words, if you are looking up a VF or some other file that need not exist, don't use this. +@item +@findex kpathsea_out_name_ok +@TeX{} can write output files, via the @code{\openout} primitive; this opens +a security hole vulnerable to Trojan horse attack: an unwitting user could +run a @TeX{} program that overwrites, say, @file{~/.rhosts}. Analogous +security holes exist for many other programs. To alleviate this, there is a +configuration variable @code{openout_any}, which selects one of three levels +of security. When it is set to @samp{a} (for ``any''), no restrictions are +imposed. When it is set to @samp{r} (for ``restricted''), filenames +beginning with @samp{.} are disallowed (except @file{.tex} because @LaTeX{} +needs it). When it is set to @samp{p} (for ``paranoid'') additional +restrictions are imposed: an absolute filename must refer to a file in (a +subdirectory) of @code{TEXMFOUTPUT}, and any attempt to go up a directory +level is forbidden (that is, paths may not contain a @samp{..} component). +The paranoid setting is the default. (For backwards compatibility, @samp{y} +and @samp{1} are synonyms of @samp{a}, while @samp{n} and @samp{0} are +synonyms for @samp{r}.) The function @code{kpathsea_out_name_ok}, with a +filename as second argument, returns @code{true} if that filename is +acceptable to be opend for output or @code{false} otherwise. + +@item +@findex kpathsea_in_name_ok +Similarly, the function @code{kpathsea_in_name_ok}, with a filename as +second argument, returns @code{true} if that filename is acceptable to be +opend for input or @code{false} otherwise, depending on the value of the +configuration variable @code{openin_any} (with @samp{a} as default). + @item @findex kpathsea_finish To close the kpathsea library instance you are using, call @@ -2418,10 +2445,10 @@ separate library.) @flindex c-*.h @pindex autoconf@r{, recommended} The @file{c-*.h} header files can also help your program adapt to many -different systems. You will almost certainly want to use Autoconf for -configuring your software if you use Kpathsea; I strongly recommend -using Autoconf regardless. It is available from -@url{ftp://prep.ai.mit.edu/pub/gnu/}. +different systems. You will almost certainly want to use Autoconf and +probably Automake for configuring and building your software if you use +Kpathsea; I strongly recommend using Autoconf and Automake regardless. +They are available from @url{ftp://ftp.gnu.og/pub/gnu/}. @node Program-specific files -- cgit v1.2.3