Hello community, here is the log from the commit of package groff for openSUSE:Factory checked in at Thu Sep 22 16:55:34 CEST 2011.
-------- --- groff/groff.changes 2011-06-27 14:59:54.000000000 +0200 +++ /mounts/work_src_done/STABLE/groff/groff.changes 2011-09-22 14:52:00.000000000 +0200 @@ -1,0 +2,8 @@ +Thu Sep 22 12:50:27 UTC 2011 - [email protected] + +- fix bnc#703665 - VUL-1: groff: missing checks for mktemp failures + (CVE-2009-5080) +- fix bnc#703666 - VUL-1: groff: insufficient number of X for mktemp + (CVE-2009-5081) + +------------------------------------------------------------------- calling whatdependson for head-i586 New: ---- groff-1.21-CVE-2009-5080.patch groff-1.21-CVE-2009-5081.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ groff.spec ++++++ --- /var/tmp/diff_new_pack.HWlBLX/_old 2011-09-22 16:55:30.000000000 +0200 +++ /var/tmp/diff_new_pack.HWlBLX/_new 2011-09-22 16:55:30.000000000 +0200 @@ -37,6 +37,10 @@ Patch3: groff-1.21-groffer-libexecdir.patch Patch4: groff-1.20.1-deunicode.patch Patch5: groff-1.21-CVE-2009-5044.patch +#PATCH-FIX-OPENSUSE: splitted patch6 and patch7 from +#http://cvsweb.openwall.com/cgi/cvsweb.cgi/Owl/packages/groff/groff-1.20.1-owl-tmp.diff?rev=1.2;content-type=text%2Fplain +Patch6: groff-1.21-CVE-2009-5080.patch +Patch7: groff-1.21-CVE-2009-5081.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: gcc-c++ @@ -86,6 +90,8 @@ %patch3 -p1 -b .groffer-libexecdir %patch4 -p1 -b .deunicode %patch5 -p1 -b .CVE-2009-5044 +%patch6 -p1 -b .CVE-2009-5080 +%patch7 -p1 -b .CVE-2009-5081 %build PATH=$PWD/src/roff/troff:$PWD/src/preproc/pic:$PWD/src/preproc/eqn:$PWD/src/preproc/tbl:$PWDsrc/preproc/refer:$PWD/src/preproc/soelim:$PATH ++++++ groff-1.21-CVE-2009-5080.patch ++++++ Index: groff-1.21/contrib/eqn2graph/eqn2graph.sh =================================================================== --- groff-1.21.orig/contrib/eqn2graph/eqn2graph.sh 2011-09-22 14:15:22.000000000 +0200 +++ groff-1.21/contrib/eqn2graph/eqn2graph.sh 2011-09-22 14:23:55.754494862 +0200 @@ -69,6 +69,8 @@ tmp=$d/eqn2graph$$-$RANDOM (umask 077 && mkdir $tmp) 2> /dev/null && break + + tmp= done; if test -z "$tmp"; then echo "$0: cannot create temporary directory" >&2 Index: groff-1.21/contrib/grap2graph/grap2graph.sh =================================================================== --- groff-1.21.orig/contrib/grap2graph/grap2graph.sh 2011-09-22 14:15:22.000000000 +0200 +++ groff-1.21/contrib/grap2graph/grap2graph.sh 2011-09-22 14:23:55.754494862 +0200 @@ -65,6 +65,8 @@ tmp=$d/grap2graph$$-$RANDOM (umask 077 && mkdir $tmp) 2> /dev/null && break + + tmp= done; if test -z "$tmp"; then echo "$0: cannot create temporary directory" >&2 Index: groff-1.21/contrib/pic2graph/pic2graph.sh =================================================================== --- groff-1.21.orig/contrib/pic2graph/pic2graph.sh 2011-09-22 14:15:22.000000000 +0200 +++ groff-1.21/contrib/pic2graph/pic2graph.sh 2011-09-22 14:23:55.794496246 +0200 @@ -80,6 +80,8 @@ tmp=$d/pic2graph$$-$RANDOM (umask 077 && mkdir $tmp) 2> /dev/null \ && break + + tmp= done; if test -z "$tmp"; then echo "$0: cannot create temporary directory" >&2 ++++++ groff-1.21-CVE-2009-5081.patch ++++++ Index: groff-1.21/contrib/groffer/perl/groffer.pl =================================================================== --- groff-1.21.orig/contrib/groffer/perl/groffer.pl 2010-12-31 08:33:09.000000000 +0100 +++ groff-1.21/contrib/groffer/perl/groffer.pl 2011-09-22 14:23:55.756494935 +0200 @@ -1380,7 +1380,7 @@ ######################################################################## sub main_temp { - 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 $_) { @@ -1411,12 +1411,12 @@ # 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.21/contrib/groffer/perl/roff2.pl =================================================================== --- groff-1.21.orig/contrib/groffer/perl/roff2.pl 2010-12-31 08:33:09.000000000 +0100 +++ groff-1.21/contrib/groffer/perl/roff2.pl 2011-09-22 14:23:55.783495865 +0200 @@ -124,7 +124,7 @@ last; } } - my $template = $Name . '_XXXX'; + my $template = $Name . '_XXXXXXXXXX'; my ($fh, $stdin); if ($tempdir) { ($fh, $stdin) = tempfile($template, UNLINK => 1, DIR => $tempdir) || Index: groff-1.21/contrib/pdfmark/pdfroff.man =================================================================== --- groff-1.21.orig/contrib/pdfmark/pdfroff.man 2011-09-22 14:15:22.000000000 +0200 +++ groff-1.21/contrib/pdfmark/pdfroff.man 2011-09-22 14:23:55.792496177 +0200 @@ -529,7 +529,7 @@ .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 is @@ -541,7 +541,8 @@ .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.21/doc/fixinfo.sh =================================================================== --- groff-1.21.orig/doc/fixinfo.sh 2010-12-31 08:33:09.000000000 +0100 +++ groff-1.21/doc/fixinfo.sh 2011-09-22 14:23:55.795496280 +0200 @@ -21,7 +21,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.21/doc/groff.info-2 =================================================================== --- groff-1.21.orig/doc/groff.info-2 2010-12-31 08:33:12.000000000 +0100 +++ groff-1.21/doc/groff.info-2 2011-09-22 14:23:55.798496383 +0200 @@ -1918,9 +1918,9 @@ .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.21/doc/groff.texinfo =================================================================== --- groff-1.21.orig/doc/groff.texinfo 2010-12-31 08:33:09.000000000 +0100 +++ groff-1.21/doc/groff.texinfo 2011-09-22 14:23:55.803496556 +0200 @@ -13568,9 +13568,9 @@ @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.21/gendef.sh =================================================================== --- groff-1.21.orig/gendef.sh 2010-12-31 08:33:08.000000000 +0100 +++ groff-1.21/gendef.sh 2011-09-22 14:23:55.804496590 +0200 @@ -34,11 +34,9 @@ #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 @@ -46,8 +44,6 @@ test -r $file && cmp -s $t $file || cp $t $file -rm -f $t - exit 0 # eof Index: groff-1.21/src/roff/groff/pipeline.c =================================================================== --- groff-1.21.orig/src/roff/groff/pipeline.c 2010-12-31 08:33:08.000000000 +0100 +++ groff-1.21/src/roff/groff/pipeline.c 2011-09-22 14:23:55.804496590 +0200 @@ -378,6 +378,7 @@ /* 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); ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
