Fixed security issue (CVE-2008-0411), bug #208999, thank Robert Buchholz for report...
authorPeter Volkov <pva@gentoo.org>
Fri, 29 Feb 2008 12:02:40 +0000 (12:02 +0000)
committerPeter Volkov <pva@gentoo.org>
Fri, 29 Feb 2008 12:02:40 +0000 (12:02 +0000)
Package-Manager: portage-2.1.4.4
RepoMan-Options: --force

app-text/ghostscript-esp/ChangeLog
app-text/ghostscript-esp/files/ghostscript-8.60-CVE-2008-0411.diff [new file with mode: 0644]
app-text/ghostscript-esp/ghostscript-esp-8.15.4-r1.ebuild [new file with mode: 0644]
app-text/ghostscript-gnu/ChangeLog
app-text/ghostscript-gnu/files/ghostscript-8.60-CVE-2008-0411.diff [new file with mode: 0644]
app-text/ghostscript-gnu/ghostscript-gnu-8.60.0-r2.ebuild [new file with mode: 0644]

index 910066107a21c5262373584623e9711eb8709ffb..f0f9ebe5486f4a884493342ac500f3ea391297a0 100644 (file)
@@ -1,6 +1,13 @@
 # ChangeLog for app-text/ghostscript-esp
 # Copyright 2002-2008 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-text/ghostscript-esp/ChangeLog,v 1.57 2008/02/09 12:01:07 armin76 Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-text/ghostscript-esp/ChangeLog,v 1.58 2008/02/29 12:00:42 pva Exp $
+
+*ghostscript-esp-8.15.4-r1 (29 Feb 2008)
+
+  29 Feb 2008; <pva@gentoo.org> +files/ghostscript-8.60-CVE-2008-0411.diff,
+  +ghostscript-esp-8.15.4-r1.ebuild:
+  Fixed security issue (CVE-2008-0411), bug #208999, thank Robert Buchholz for
+  report and coordination.
 
   09 Feb 2008; Raúl Porcel <armin76@gentoo.org>
   ghostscript-esp-8.15.4.ebuild:
diff --git a/app-text/ghostscript-esp/files/ghostscript-8.60-CVE-2008-0411.diff b/app-text/ghostscript-esp/files/ghostscript-8.60-CVE-2008-0411.diff
new file mode 100644 (file)
index 0000000..a5ddf3a
--- /dev/null
@@ -0,0 +1,12 @@
+--- src/zicc.c
++++ src/zicc.c 2008-02-05 16:11:59.000000000 +0000
+@@ -77,6 +77,9 @@ zseticcspace(i_ctx_t * i_ctx_p)
+     dict_find_string(op, "N", &pnval);
+     ncomps = pnval->value.intval;
+ 
++    if (2*ncomps > sizeof(range_buff)/sizeof(float))
++      return_error(e_rangecheck);
++
+     /* verify the DataSource entry */
+     if (dict_find_string(op, "DataSource", &pstrmval) <= 0)
+         return_error(e_undefined);
diff --git a/app-text/ghostscript-esp/ghostscript-esp-8.15.4-r1.ebuild b/app-text/ghostscript-esp/ghostscript-esp-8.15.4-r1.ebuild
new file mode 100644 (file)
index 0000000..6acfc63
--- /dev/null
@@ -0,0 +1,135 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-text/ghostscript-esp/ghostscript-esp-8.15.4-r1.ebuild,v 1.1 2008/02/29 12:00:42 pva Exp $
+
+WANT_AUTOCONF="latest"
+WANT_AUTOMAKE="latest"
+
+inherit autotools elisp-common eutils versionator
+
+DESCRIPTION="ESP Ghostscript -- an enhanced version of GPL Ghostscript with better printer support"
+HOMEPAGE="http://www.cups.org/espgs"
+
+GSDJVU_PV=1.1
+MY_P=espgs-${PV}
+PVM=$(get_version_component_range 1-2)
+SRC_URI="cjk? ( ftp://ftp.gyve.org/pub/gs-cjk/adobe-cmaps-200406.tar.gz
+               ftp://ftp.gyve.org/pub/gs-cjk/acro5-cmaps-2001.tar.gz )
+               djvu? ( mirror://sourceforge/djvu/gsdjvu-${GSDJVU_PV}.tar.gz )
+               http://ftp.rz.tu-bs.de/pub/mirror/ftp.easysw.com/ftp/pub/ghostscript/${PV}/espgs-${PV}-source.tar.bz2
+               ftp://ftp3.easysw.com/pub/ghostscript/${PV}/espgs-${PV}-source.tar.bz2"
+ESVN_REPO_URI="http://svn.easysw.com/public/espgs/trunk"
+
+LICENSE="GPL-2 LGPL-2 CPL-1.0"
+SLOT="0"
+KEYWORDS="~alpha amd64 hppa ~ia64 ~m68k ppc ppc64 sparc x86 ~x86-fbsd"
+IUSE="X cups cjk gtk threads xml djvu"
+
+DEP="virtual/libc
+       >=media-libs/jpeg-6b
+       >=media-libs/libpng-1.2.5
+       >=sys-libs/zlib-1.1.4
+       >=media-libs/tiff-3.7
+       X? ( x11-libs/libXt
+               x11-libs/libXext )
+       djvu? ( app-text/djvu )
+       gtk? ( >=x11-libs/gtk+-2.0 )
+       cups? ( >=net-print/cups-1.1.20 )
+       xml? ( >=dev-libs/libxml2-2.6.8 )
+       media-libs/fontconfig
+       !app-text/ghostscript-gnu
+       !app-text/ghostscript-gpl"
+
+RDEPEND="${DEP}
+       cjk? ( media-fonts/arphicfonts
+               media-fonts/kochi-substitute
+               media-fonts/baekmuk-fonts )
+       media-fonts/gnu-gs-fonts-std"
+
+DEPEND="${DEP}
+       dev-util/pkgconfig"
+
+S=${WORKDIR}/${MY_P}
+
+src_unpack() {
+       unpack ${A/adobe-cmaps-200406.tar.gz acro5-cmaps-2001.tar.gz}
+       if use cjk; then
+               cat "${FILESDIR}"/ghostscript-esp-8.15.2-cidfmap.cjk >> "${S}"/lib/cidfmap
+               cat "${FILESDIR}"/ghostscript-esp-8.15.2-FAPIcidfmap.cjk >> "${S}"/lib/FAPIcidfmap
+               cd "${S}"/Resource
+               unpack adobe-cmaps-200406.tar.gz
+               unpack acro5-cmaps-2001.tar.gz
+       fi
+       cd "${S}"
+
+       # http://cups.org/espgs/str.php?L2000
+       epatch "${FILESDIR}"/ghostscript-esp-8.15.1-fPIC.patch
+
+       # Security fix for bug #208999
+       epatch "${FILESDIR}"/ghostscript-8.60-CVE-2008-0411.diff
+
+       if use djvu; then
+               unpack gsdjvu-${GSDJVU_PV}.tar.gz
+               cp gsdjvu-${GSDJVU_PV}/gsdjvu "${S}"
+               cp gsdjvu-${GSDJVU_PV}/gdevdjvu.c "${S}"/src
+               cp gsdjvu-${GSDJVU_PV}/ps2utf8.ps "${S}"/lib
+               cp "${S}"/src/contrib.mak "${S}"/src/contrib.mak.gsdjvu
+               grep -q djvusep "${S}"/src/contrib.mak || \
+                       cat gsdjvu-${GSDJVU_PV}/gsdjvu.mak >> "${S}"/src/contrib.mak
+       fi
+
+       # search path fix
+       sed -i -e "s:\$\(gsdatadir\)/lib:/usr/share/ghostscript/${PVM}/$(get_libdir):" \
+               -e 's:$(gsdir)/fonts:/usr/share/fonts/default/ghostscript/:' \
+               -e "s:exdir=.*:exdir=/usr/share/doc/${PF}/examples:" \
+               src/Makefile.in || die "sed failed"
+       sed -i -e "s:docdir=.*:docdir=/usr/share/doc/${PF}/html:" \
+               -e "s:GS_DOCDIR=.*:GS_DOCDIR=/usr/share/doc/${PF}/html:" \
+               src/Makefile.in src/*.mak || die "sed failed"
+
+       cp /usr/share/automake-1.9/install-sh "${S}"
+       AT_NOELIBTOOLIZE="yes" eautoreconf
+       cd ijs
+       AT_NOELIBTOOLIZE="yes" eautoreconf
+       elibtoolize
+}
+
+src_compile() {
+       econf $(use_with X x) \
+               $(use_enable gtk) \
+               $(use_enable cups) \
+               $(use_enable threads) \
+               $(use_with xml omni) \
+               --with-fontconfig \
+               --with-ijs \
+               --with-jbig2dec || die "econf failed"
+
+       if use djvu; then
+               sed -i -e 's!$(DD)bbox.dev!& $(DD)djvumask.dev $(DD)djvusep.dev!g'              Makefile
+               sed -i -e 's:(/\(Resource/[a-zA-Z/]*\)):(\1) findlibfile {pop} {pop &}
+               ifelse:' lib/gs_res.ps
+       fi
+
+       emake -j1 so all || die "emake failed"
+
+       cd ijs
+       econf || die "ijs econf failed"
+       emake || die "ijs emake failed"
+}
+
+src_install() {
+       emake install_prefix="${D}" install soinstall || die "emake install failed"
+
+       use djvu && dobin gsdjvu
+
+       rm -fr "${D}"/usr/share/doc/${PF}/html/{README,PUBLIC}
+       dodoc doc/README
+
+       cd "${S}"/ijs
+       emake DESTDIR="${D}" install || die "emake ijs install failed"
+}
+
+pkg_postinst() {
+       ewarn "If you are upgrading from ghostscript-7 you need to rebuild"
+       ewarn "gimp-print. Please run 'revdep-rebuild' to do this."
+}
index 0f9ae76534b7a5f731706cd3462e97d77626cd51..d7ad9472a6baa64a66e0cb151dd4b97c2fc319d9 100644 (file)
@@ -1,6 +1,13 @@
 # ChangeLog for app-text/ghostscript-gnu
-# Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-text/ghostscript-gnu/ChangeLog,v 1.35 2007/11/14 06:23:41 corsair Exp $
+# Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/app-text/ghostscript-gnu/ChangeLog,v 1.36 2008/02/29 12:02:39 pva Exp $
+
+*ghostscript-gnu-8.60.0-r2 (29 Feb 2008)
+
+  29 Feb 2008; <pva@gentoo.org> +files/ghostscript-8.60-CVE-2008-0411.diff,
+  +ghostscript-gnu-8.60.0-r2.ebuild:
+  Fixed security issue (CVE-2008-0411), bug #208999, thank Robert Buchholz for
+  report and coordination.
 
   14 Nov 2007; Markus Rothe <corsair@gentoo.org>
   ghostscript-gnu-8.60.0-r1.ebuild:
diff --git a/app-text/ghostscript-gnu/files/ghostscript-8.60-CVE-2008-0411.diff b/app-text/ghostscript-gnu/files/ghostscript-8.60-CVE-2008-0411.diff
new file mode 100644 (file)
index 0000000..a5ddf3a
--- /dev/null
@@ -0,0 +1,12 @@
+--- src/zicc.c
++++ src/zicc.c 2008-02-05 16:11:59.000000000 +0000
+@@ -77,6 +77,9 @@ zseticcspace(i_ctx_t * i_ctx_p)
+     dict_find_string(op, "N", &pnval);
+     ncomps = pnval->value.intval;
+ 
++    if (2*ncomps > sizeof(range_buff)/sizeof(float))
++      return_error(e_rangecheck);
++
+     /* verify the DataSource entry */
+     if (dict_find_string(op, "DataSource", &pstrmval) <= 0)
+         return_error(e_undefined);
diff --git a/app-text/ghostscript-gnu/ghostscript-gnu-8.60.0-r2.ebuild b/app-text/ghostscript-gnu/ghostscript-gnu-8.60.0-r2.ebuild
new file mode 100644 (file)
index 0000000..bc9c7d0
--- /dev/null
@@ -0,0 +1,96 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-text/ghostscript-gnu/ghostscript-gnu-8.60.0-r2.ebuild,v 1.1 2008/02/29 12:02:39 pva Exp $
+
+WANT_AUTOMAKE=1.9
+
+inherit autotools elisp-common eutils versionator flag-o-matic
+
+DESCRIPTION="GNU Ghostscript - patched GPL Ghostscript"
+HOMEPAGE="http://www.gnu.org/software/ghostscript/"
+
+MY_P=gnu-ghostscript-${PV}
+PVM=$(get_version_component_range 1-2)
+SRC_URI="cjk? ( ftp://ftp.gyve.org/pub/gs-cjk/adobe-cmaps-200406.tar.gz
+               ftp://ftp.gyve.org/pub/gs-cjk/acro5-cmaps-2001.tar.gz )
+       mirror://gnu/ghostscript/${MY_P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ppc ppc64 ~sparc ~x86 ~x86-fbsd"
+IUSE="X cups cjk gtk jpeg2k"
+
+DEP="virtual/libc
+       >=media-libs/jpeg-6b
+       >=media-libs/libpng-1.2.5
+       >=sys-libs/zlib-1.1.4
+       >=media-libs/tiff-3.7
+       X? ( x11-libs/libXt x11-libs/libXext )
+       gtk? ( >=x11-libs/gtk+-2.0 )
+       cups? ( >=net-print/cups-1.1.20 )
+       !app-text/ghostscript-esp
+       !app-text/ghostscript-gpl"
+
+RDEPEND="${DEP}
+       cjk? ( media-fonts/arphicfonts
+               media-fonts/kochi-substitute
+               media-fonts/baekmuk-fonts )
+       media-fonts/gnu-gs-fonts-std"
+
+DEPEND="${DEP}
+       gtk? ( dev-util/pkgconfig )"
+
+S=${WORKDIR}/${MY_P}
+
+src_unpack() {
+       unpack ${A/adobe-cmaps-200406.tar.gz acro5-cmaps-2001.tar.gz}
+       if use cjk; then
+               cat "${FILESDIR}"/ghostscript-esp-8.15.2-cidfmap.cjk >> "${S}"/lib/cidfmap
+               cat "${FILESDIR}"/ghostscript-esp-8.15.2-FAPIcidfmap.cjk >> "${S}"/lib/FAPIcidfmap
+               cd "${S}"/Resource
+               unpack adobe-cmaps-200406.tar.gz
+               unpack acro5-cmaps-2001.tar.gz
+               cd "${WORKDIR}"
+       fi
+
+       cd "${S}"
+
+       epatch "${FILESDIR}"/ghostscript-CVE-2007-2721.patch
+       epatch "${FILESDIR}"/ghostscript-8.60-CVE-2008-0411.diff
+
+       # search path fix
+       sed -i -e "s:\$\(gsdatadir\)/lib:/usr/share/ghostscript/${PVM}/$(get_libdir):" \
+               -e 's:$(gsdir)/fonts:/usr/share/fonts/default/ghostscript/:' \
+               -e "s:exdir=.*:exdir=/usr/share/doc/${PF}/examples:" \
+               -e "s:docdir=.*:docdir=/usr/share/doc/${PF}/html:" \
+               -e "s:GS_DOCDIR=.*:GS_DOCDIR=/usr/share/doc/${PF}/html:" \
+               Makefile.in src/*.mak || die "sed failed"
+}
+
+src_compile() {
+       econf $(use_with X x) \
+               $(use_with jpeg2k jasper) \
+               $(use_enable cups) \
+               $(use_enable gtk) \
+               --with-ijs \
+               --with-jbig2dec \
+               --disable-compile-inits \
+               --enable-dynamic \
+               || die "econf failed"
+
+       emake -j1 so all || die "emake failed"
+
+       cd ijs
+       econf || die "ijs econf failed"
+       emake || die "ijs emake failed"
+}
+
+src_install() {
+       emake DESTDIR="${D}" install-so install || die "emake install failed"
+
+       rm -fr "${D}"/usr/share/doc/${PF}/html/{README,PUBLIC}
+       dodoc doc/README
+
+       cd "${S}"/ijs
+       emake DESTDIR="${D}" install || die "emake ijs install failed"
+}