Fix insecure tempfile usage #106105.
authorMike Frysinger <vapier@gentoo.org>
Thu, 29 Sep 2005 08:51:10 +0000 (08:51 +0000)
committerMike Frysinger <vapier@gentoo.org>
Thu, 29 Sep 2005 08:51:10 +0000 (08:51 +0000)
Package-Manager: portage-2.0.52-r1 http://www.bash.org/?136501

sys-apps/texinfo/ChangeLog
sys-apps/texinfo/Manifest
sys-apps/texinfo/files/digest-texinfo-4.8-r1 [new file with mode: 0644]
sys-apps/texinfo/files/texinfo-4.8-tempfile.patch [new file with mode: 0644]
sys-apps/texinfo/texinfo-4.8-r1.ebuild [new file with mode: 0644]

index d5a68f8c227e3b5fb78461d237d1003abc4d031a..647fc1d8619a667703375a0264cc453cebf2e433 100644 (file)
@@ -1,6 +1,12 @@
 # ChangeLog for sys-apps/texinfo
 # Copyright 1999-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-apps/texinfo/ChangeLog,v 1.57 2005/09/17 00:34:47 ciaranm Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/texinfo/ChangeLog,v 1.58 2005/09/29 08:51:10 vapier Exp $
+
+*texinfo-4.8-r1 (29 Sep 2005)
+
+  29 Sep 2005; Mike Frysinger <vapier@gentoo.org>
+  +files/texinfo-4.8-tempfile.patch, +texinfo-4.8-r1.ebuild:
+  Fix insecure tempfile usage #106105.
 
   17 Sep 2005; Ciaran McCreesh <ciaranm@gentoo.org> ChangeLog:
   Converted to UTF-8, fixed encoding screwups
index 6d253ce16313dd7201dba16a6bca83b8702528ff..0bfd4beae2263f7329545f1f477ca995699e4d8e 100644 (file)
@@ -1,19 +1,22 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
-MD5 51d0756296f7f75f5a8cf3ec558fe1aa texinfo-4.8.ebuild 1909
 MD5 9a09f8d531c582e78977dbfd96edc1f2 metadata.xml 164
 MD5 75c60847c4f9b9d75375567cd1a3ba81 texinfo-4.7-r1.ebuild 1979
-MD5 0e49c15bda489070d5411dc6a36863c7 ChangeLog 7314
-MD5 1c6181fd6a19db98315a1f737a5ae839 files/digest-texinfo-4.8 65
+MD5 aaac50ea8fce0b3174cbdad4d7584db4 texinfo-4.8-r1.ebuild 1975
+MD5 51d0756296f7f75f5a8cf3ec558fe1aa texinfo-4.8.ebuild 1909
+MD5 95df2fa8d9b77ac894f1910634508d34 ChangeLog 7495
 MD5 7246b5d34e673e1eb937186e4f18f56d files/texinfo-4.8-freebsd.patch 3787
+MD5 6db903b811b98699388c8e765d2721c4 files/texinfo-4.8-tempfile.patch 1406
+MD5 1c6181fd6a19db98315a1f737a5ae839 files/digest-texinfo-4.8-r1 65
 MD5 690fb86d0c0215155b1d18671099115a files/mkinfodir 7318
-MD5 a0df107ca9e3036e2ee2d501343cbf2b files/makeinfo.patch 790
 MD5 a2c21c53079eb65c306a08d230d15b2b files/digest-texinfo-4.7-r1 65
+MD5 1c6181fd6a19db98315a1f737a5ae839 files/digest-texinfo-4.8 65
+MD5 a0df107ca9e3036e2ee2d501343cbf2b files/makeinfo.patch 790
 -----BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.1 (GNU/Linux)
+Version: GnuPG v1.4.2 (GNU/Linux)
 
-iD8DBQFDK2TaLLFUmVNQ7rkRAnA+AKDCvKW7fCNDQ9RfV8vfLDnXAyJiqgCfRJAJ
-JRIHsJdXuA86mmlsHlIo8us=
-=I0cl
+iD8DBQFDO6tEgIKl8Uu19MoRArruAJ9lYt1UKY538tkiwU/Z4ruUaCO55ACeNLU4
+/81QKHK5Iap1TT6wVQ90mTU=
+=ICrI
 -----END PGP SIGNATURE-----
diff --git a/sys-apps/texinfo/files/digest-texinfo-4.8-r1 b/sys-apps/texinfo/files/digest-texinfo-4.8-r1
new file mode 100644 (file)
index 0000000..89aa6b2
--- /dev/null
@@ -0,0 +1 @@
+MD5 6ba369bbfe4afaa56122e65b3ee3a68c texinfo-4.8.tar.bz2 1521822
diff --git a/sys-apps/texinfo/files/texinfo-4.8-tempfile.patch b/sys-apps/texinfo/files/texinfo-4.8-tempfile.patch
new file mode 100644 (file)
index 0000000..c3c9e93
--- /dev/null
@@ -0,0 +1,60 @@
+http://bugs.gentoo.org/106105
+
+--- util/texindex.c
++++ util/texindex.c
+@@ -99,6 +99,9 @@ long nlines;
+ /* Directory to use for temporary files.  On Unix, it ends with a slash.  */
+ char *tempdir;
+ 
++/* Basename for temp files inside of tempdir.  */
++char *tempbase;
++
+ /* Number of last temporary file.  */
+ int tempcount;
+ 
+@@ -190,6 +193,11 @@ main (int argc, char **argv)
+ 
+   decode_command (argc, argv);
+ 
++  /* XXX mkstemp not appropriate, as we need to have somewhat predictable
++   * names. But race condition was fixed, see maketempname. 
++   */
++  tempbase = mktemp ("txidxXXXXXX");
++
+   /* Process input files completely, one by one.  */
+ 
+   for (i = 0; i < num_infiles; i++)
+@@ -392,21 +400,21 @@ For more information about these matters
+ static char *
+ maketempname (int count)
+ {
+-  static char *tempbase = NULL;
+   char tempsuffix[10];
+-
+-  if (!tempbase)
+-    {
+-      int fd;
+-      tempbase = concat (tempdir, "txidxXXXXXX");
+-
+-      fd = mkstemp (tempbase);
+-      if (fd == -1)
+-        pfatal_with_name (tempbase);
+-    }
++  char *name, *tmp_name;
++  int fd;
+ 
+   sprintf (tempsuffix, ".%d", count);
+-  return concat (tempbase, tempsuffix);
++  tmp_name = concat (tempdir, tempbase);
++  name = concat (tmp_name, tempsuffix);
++  free(tmp_name);
++
++  fd = open (name, O_CREAT|O_EXCL|O_WRONLY, 0600);
++  if (fd == -1)
++    pfatal_with_name (name);
++
++  close(fd);
++  return name;
+ }
+ 
+ 
diff --git a/sys-apps/texinfo/texinfo-4.8-r1.ebuild b/sys-apps/texinfo/texinfo-4.8-r1.ebuild
new file mode 100644 (file)
index 0000000..50b5f9b
--- /dev/null
@@ -0,0 +1,69 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/texinfo/texinfo-4.8-r1.ebuild,v 1.1 2005/09/29 08:51:10 vapier Exp $
+
+inherit flag-o-matic eutils
+
+DESCRIPTION="The GNU info program and utilities"
+HOMEPAGE="http://www.gnu.org/software/texinfo/"
+SRC_URI="mirror://gnu/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc-macos ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE="nls build static"
+
+RDEPEND="!build? ( >=sys-libs/ncurses-5.2-r2 )"
+DEPEND="${RDEPEND}
+       !build? ( nls? ( sys-devel/gettext ) )"
+
+src_unpack() {
+       unpack ${A}
+       cd "${S}"
+       epatch "${FILESDIR}"/${P}-freebsd.patch
+       epatch "${FILESDIR}"/${P}-tempfile.patch #106105
+
+       cd doc
+       # Get the texinfo info page to have a proper name of texinfo.info
+       sed -i 's:setfilename texinfo:setfilename texinfo.info:' texinfo.txi
+       sed -i \
+               -e 's:INFO_DEPS = texinfo:INFO_DEPS = texinfo.info:' \
+               -e 's:texinfo\::texinfo.info\::' \
+               Makefile.in
+}
+
+src_compile() {
+       local myconf=
+       if ! use nls || use build ; then
+               myconf="--disable-nls"
+       fi
+       use static && append-ldflags -static
+
+       econf ${myconf} || die
+
+       # work around broken dependency's in info/Makefile.am #85540
+       emake -C lib || die "emake lib"
+       emake -C info makedoc || die "emake makedoc"
+       emake -C info doc.c || die "emake doc.c"
+       emake || die "emake"
+}
+
+src_install() {
+       if use build ; then
+               newbin util/ginstall-info install-info
+               dobin makeinfo/makeinfo util/{texi2dvi,texindex}
+       else
+               make DESTDIR="${D}" install || die "install failed"
+               dosbin ${FILESDIR}/mkinfodir
+               # tetex installs this guy #76812
+               has_version '<app-text/tetex-3' && rm -f "${D}"/usr/bin/texi2pdf
+
+               if [[ ! -f ${D}/usr/share/info/texinfo.info ]] ; then
+                       die "Could not install texinfo.info!!!"
+               fi
+
+               dodoc AUTHORS ChangeLog INTRODUCTION NEWS README TODO
+               newdoc info/README README.info
+               newdoc makeinfo/README README.makeinfo
+       fi
+}