diff options
Diffstat (limited to 'Build/source/texk/kpathsea/doc/kpathsea.texi')
-rw-r--r-- | Build/source/texk/kpathsea/doc/kpathsea.texi | 37 |
1 files changed, 32 insertions, 5 deletions
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 @@ -2395,6 +2395,33 @@ 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 @code{kpathsea_finish}. This function closes any open log files and @@ -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 |