groff/groff-1.21-CVE-2009-5081.patch
Tomáš Chvátal 0c61fc9a4d - Version bump to latest release 1.22.3:
* X11 resources for `gxditview', which were previously installed in
    /usr/X11/lib/X11/app-defaults no matter which `prefix' was set, are
    now installed in appresdir=$prefix/lib/X11/app-defaults.  If
    `appresdir' is not a standard X11 resource directory, the environment
    variable XFILESEARCHPATH should be set to this path.  The standard
    default directories depends on the system `libXt'.
  * This new preprocessor (contributed by Bernd Warken) allows embedding of
    code for GNU LilyPond (http://www.lilypond.org), a music typesetter.  The
    data gets automatically processed and embedded as EPS images.
  * Bernd Warken contributed a new preprocessor to handle Perl code that can
    be evaluated and then processed by groff.
  * Another preprocessor from Bernd Warken to pretty-print Pinyin syllables
    like `guo2wang2' as `guówáng'.
  * The pdfroff utility script now activates its `--no-toc-relocation' option
    by default, unless a request similar to:
     .if !\n[PHASE] .tm pdfroff-option:set toc_relocation=enabled
    is invoked during input file processing; (`.if !\n[PHASE] ...' ensures
    that the effect of the `.tm' request is restricted to the document setup
    phase of processing, as pdfroff sets it to 1 or 2 in the output phase,
    but leaves it unset in the setup phase).
    The bundled `spdf.tmac' macro package, which implicitly activates
    `-mpdfmark' for `ms' macro users, ensures that TOC relocation is
    appropriately enabled, when the `.TC' macro is invoked.
  * The -mom macro package now has full support for eqn, pic, and tbl, as well
    as captioning and labelling of pdf images and preprocessor output.  Lists
    of Figures, Equations, and Tables can now be autogenerated.  PDF_IMAGE has
    a new FRAME option.
  * A French introduction to the -me macro package has been added (file
    `meintro_fr.me').

OBS-URL: https://build.opensuse.org/package/show/M17N/groff?expand=0&rev=54
2015-02-04 12:11:48 +00:00

156 lines
5.4 KiB
Diff

Index: groff-1.22.3/contrib/pdfmark/pdfroff.man
===================================================================
--- groff-1.22.3.orig/contrib/pdfmark/pdfroff.man
+++ groff-1.22.3/contrib/pdfmark/pdfroff.man
@@ -555,7 +555,7 @@ defaults to
.B GROFF_TMPDIR
Identifies the directory in which
.B pdfroff
-should create temporary files.
+should create a subdirectory for its temporary files.
.
If
.B \%GROFF_TMPDIR
@@ -568,7 +568,8 @@ and
.B TEMP
are considered in turn, as possible temporary file repositories.
If none of these are set, then temporary files are created
-in the current directory.
+in a subdirectory of
+.BR /tmp .
.
.TP
.B GROFF_GHOSTSCRIPT_INTERPRETER
Index: groff-1.22.3/doc/fixinfo.sh
===================================================================
--- groff-1.22.3.orig/doc/fixinfo.sh
+++ groff-1.22.3/doc/fixinfo.sh
@@ -22,7 +22,9 @@
# groff.texinfo macro code. Hopefully, a new texinfo version makes it
# unnecessary.
-t=${TMPDIR-.}/gro$$.tmp
+t="`mktemp -t groff-fixinfo.XXXXXXXXXX`" || exit
+trap 'rm -f -- "$t"' EXIT
+trap 'trap - EXIT; rm -f -- "$t"; exit 1' HUP INT QUIT TERM
cat $1 | sed '
1 {
Index: groff-1.22.3/doc/groff.info-2
===================================================================
--- groff-1.22.3.orig/doc/groff.info-2
+++ groff-1.22.3/doc/groff.info-2
@@ -1697,9 +1697,9 @@ not there, 'groff' would not know when t
time into a document:
.sy perl -e 'printf ".nr H %d\\n.nr M %d\\n.nr S %d\\n",\
- (localtime(time))[2,1,0]' > /tmp/x\n[$$]
- .so /tmp/x\n[$$]
- .sy rm /tmp/x\n[$$]
+ (localtime(time))[2,1,0]' > timefile\n[$$]
+ .so timefile\n[$$]
+ .sy rm timefile\n[$$]
\nH:\nM:\nS
Note that this works by having the 'perl' script (run by 'sy')
Index: groff-1.22.3/doc/groff.texinfo
===================================================================
--- groff-1.22.3.orig/doc/groff.texinfo
+++ groff-1.22.3/doc/groff.texinfo
@@ -13736,9 +13736,9 @@ into a document:
@pindex perl
@Example
.sy perl -e 'printf ".nr H %d\\n.nr M %d\\n.nr S %d\\n",\
- (localtime(time))[2,1,0]' > /tmp/x\n[$$]
-.so /tmp/x\n[$$]
-.sy rm /tmp/x\n[$$]
+ (localtime(time))[2,1,0]' > timefile\n[$$]
+.so timefile\n[$$]
+.sy rm timefile\n[$$]
\nH:\nM:\nS
@endExample
Index: groff-1.22.3/gendef.sh
===================================================================
--- groff-1.22.3.orig/gendef.sh
+++ groff-1.22.3/gendef.sh
@@ -33,11 +33,9 @@ do
#define $def"
done
-# Use $TMPDIR if defined. Default to cwd, for non-Unix systems
-# which don't have /tmp on each drive (we are going to remove
-# the file before we exit anyway). Put the PID in the basename,
-# since the extension can only hold 3 characters on MS-DOS.
-t=${TMPDIR-.}/gro$$.tmp
+t="`mktemp -t groff-gendef.XXXXXXXXXX`" || exit
+trap 'rm -f -- "$t"' EXIT
+trap 'trap - EXIT; rm -f -- "$t"; exit 1' HUP INT QUIT TERM
sed -e 's/=/ /' >$t <<EOF
$defs
@@ -45,8 +43,6 @@ EOF
test -r $file && cmp -s $t $file || cp $t $file
-rm -f $t
-
exit 0
# eof
Index: groff-1.22.3/src/roff/groff/pipeline.c
===================================================================
--- groff-1.22.3.orig/src/roff/groff/pipeline.c
+++ groff-1.22.3/src/roff/groff/pipeline.c
@@ -376,6 +376,7 @@ int run_pipeline(int ncommands, char ***
/* Don't use `tmpnam' here: Microsoft's implementation yields unusable
file names if current directory is on network share with read-only
root. */
+#error AUDIT: This code is only compiled under DOS
tmpfiles[0] = tempnam(tmpdir, NULL);
tmpfiles[1] = tempnam(tmpdir, NULL);
Index: groff-1.22.3/contrib/groffer/main_subs.pl
===================================================================
--- groff-1.22.3.orig/contrib/groffer/main_subs.pl
+++ groff-1.22.3/contrib/groffer/main_subs.pl
@@ -1239,7 +1239,7 @@ sub main_temp {
our $fh_stdin;
our $tmp_cat;
our $tmp_stdin;
- my $template = 'groffer_' . "$$" . '_XXXX';
+ my $template = 'groffer_' . "$$" . '_XXXXXXXXXX';
foreach ($ENV{'GROFF_TMPDIR'}, $ENV{'TMPDIR'}, $ENV{'TMP'}, $ENV{'TEMP'},
$ENV{'TEMPDIR'}, File::Spec->catfile($ENV{'HOME'}, 'tmp')) {
if ($_ && -d $_ && -w $_) {
@@ -1271,12 +1271,12 @@ sub main_temp {
# further argument: SUFFIX => '.sh'
if ($Debug{'KEEP'}) {
- ($fh_cat, $tmp_cat) = tempfile(',cat_XXXX', DIR => $tmpdir);
- ($fh_stdin, $tmp_stdin) = tempfile(',stdin_XXXX', DIR => $tmpdir);
+ ($fh_cat, $tmp_cat) = tempfile(',cat_XXXXXXXXXX', DIR => $tmpdir);
+ ($fh_stdin, $tmp_stdin) = tempfile(',stdin_XXXXXXXXXX', DIR => $tmpdir);
} else {
- ($fh_cat, $tmp_cat) = tempfile(',cat_XXXX', UNLINK => 1,
+ ($fh_cat, $tmp_cat) = tempfile(',cat_XXXXXXXXXX', UNLINK => 1,
DIR => $tmpdir);
- ($fh_stdin, $tmp_stdin) = tempfile(',stdin_XXXX', UNLINK => 1,
+ ($fh_stdin, $tmp_stdin) = tempfile(',stdin_XXXXXXXXXX', UNLINK => 1,
DIR => $tmpdir);
}
} # main_temp()
Index: groff-1.22.3/contrib/groffer/roff2.pl
===================================================================
--- groff-1.22.3.orig/contrib/groffer/roff2.pl
+++ groff-1.22.3/contrib/groffer/roff2.pl
@@ -123,7 +123,7 @@ if ($Has_Groffer) {
last;
}
}
- my $template = $Name . '_XXXX';
+ my $template = $Name . '_XXXXXXXXXX';
my ($fh, $stdin);
if ($tempdir) {
($fh, $stdin) = tempfile($template, UNLINK => 1, DIR => $tempdir) ||