summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPacho Ramos <pacho@gentoo.org>2011-03-12 18:32:04 +0000
committerPacho Ramos <pacho@gentoo.org>2011-03-12 18:32:04 +0000
commit570e908c2f4acbed97114cd721af30ab92802f57 (patch)
tree27b70f5fd52e53b4dac63bf9564efb133ae8987d /x11-libs
parentVersion bump. (diff)
downloadhistorical-570e908c2f4acbed97114cd721af30ab92802f57.tar.gz
historical-570e908c2f4acbed97114cd721af30ab92802f57.tar.bz2
historical-570e908c2f4acbed97114cd721af30ab92802f57.zip
Fix security issues: CVE-2011-0020 and CVE-2011-0064. Remove old.
Package-Manager: portage-2.1.9.42/cvs/Linux x86_64
Diffstat (limited to 'x11-libs')
-rw-r--r--x11-libs/pango/ChangeLog11
-rw-r--r--x11-libs/pango/Manifest21
-rw-r--r--x11-libs/pango/files/pango-1.2.5-lib64.patch30
-rw-r--r--x11-libs/pango/files/pango-1.26.0-introspection-automagic.patch214
-rw-r--r--x11-libs/pango/files/pango-1.28.3-heap-corruption.patch50
-rw-r--r--x11-libs/pango/files/pango-1.28.3-malloc-failure.patch186
-rw-r--r--x11-libs/pango/pango-1.24.5-r1.ebuild74
-rw-r--r--x11-libs/pango/pango-1.28.3-r1.ebuild (renamed from x11-libs/pango/pango-1.26.2.ebuild)42
8 files changed, 282 insertions, 346 deletions
diff --git a/x11-libs/pango/ChangeLog b/x11-libs/pango/ChangeLog
index 8c51271dc0a5..06c2c798ef72 100644
--- a/x11-libs/pango/ChangeLog
+++ b/x11-libs/pango/ChangeLog
@@ -1,6 +1,15 @@
# ChangeLog for x11-libs/pango
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-libs/pango/ChangeLog,v 1.303 2011/01/30 19:17:09 armin76 Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/pango/ChangeLog,v 1.304 2011/03/12 18:32:04 pacho Exp $
+
+*pango-1.28.3-r1 (12 Mar 2011)
+
+ 12 Mar 2011; Pacho Ramos <pacho@gentoo.org> -files/pango-1.2.5-lib64.patch,
+ -pango-1.24.5-r1.ebuild, -files/pango-1.26.0-introspection-automagic.patch,
+ -pango-1.26.2.ebuild, +pango-1.28.3-r1.ebuild,
+ +files/pango-1.28.3-heap-corruption.patch,
+ +files/pango-1.28.3-malloc-failure.patch:
+ Fix security issues: CVE-2011-0020 and CVE-2011-0064. Remove old.
30 Jan 2011; Raúl Porcel <armin76@gentoo.org> pango-1.28.3.ebuild:
alpha/arm/ia64/s390/sh/sparc stable wrt #348987
diff --git a/x11-libs/pango/Manifest b/x11-libs/pango/Manifest
index e4f6b80bdad1..b153392d6ade 100644
--- a/x11-libs/pango/Manifest
+++ b/x11-libs/pango/Manifest
@@ -1,14 +1,21 @@
-AUX pango-1.2.5-lib64.patch 1117 RMD160 3bab94ba930665dd8d4159f77ac8409d16340f02 SHA1 c7e9b0dc73110910dd75d6afbaa0df8cdbfb44be SHA256 a6a58d965fef42e5d4820d8292a4c7cde4aff3cfddaf184499d3bdae78a3f3db
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
AUX pango-1.26.0-fix-parallel-build.patch 995 RMD160 cc0b8a0e1bcf6a1bfc145ee0a68f5d9dc867bd62 SHA1 b689b5d8c3515bef85b49bf475392301742b8880 SHA256 d5869732d30f74cfbb1cbab0da0fd262f82f987a4706fbc0031ec452a696ac2f
-AUX pango-1.26.0-introspection-automagic.patch 8078 RMD160 1958beb426c8b7128231c1b5e9bb43bacaa402ac SHA1 2a16f0a8215249b1ef9ed1d8c3ba4f9568d00a0b SHA256 f9bc4093c6932838d7a673ac0c2c29a9dc4c888fbb1cee488176514352f88a20
AUX pango-1.26.0-lib64.patch 499 RMD160 0056b738ff517c2b1eb1a6b8e8173d91af0ebeaf SHA1 d514148e6ffced2b4f350abe25cd41282dbb3aae SHA256 1bb2671d49c54caf70e9df104ca26af4e76a536db14150a472b093d05d9f6347
-DIST pango-1.24.5.tar.bz2 1519944 RMD160 7e436752734c55950ad5feced7c7d5c3f040a1b4 SHA1 a5aa40b78546a7ee59f21804b172e5d47ef776ad SHA256 0f733d1ec3e8dafcae152d7ac58f1090bee1fd856176c8fee0e81b0e42392f4e
-DIST pango-1.26.2.tar.bz2 1536011 RMD160 6613bddf643d5c912e6656d84c6671aa6ce88a9d SHA1 051b6f7b5f98a4c8083ef6a5178cb5255a992b98 SHA256 3b85879e5d8794555d10a2b79428071c99a93b7502ccbef50360ae44c77c3e08
+AUX pango-1.28.3-heap-corruption.patch 1554 RMD160 a18ea9747315f936ce5067c84c969eb221d54c3d SHA1 e287ff68f2e430d4b5b54a22f9418eb44d580642 SHA256 5973c66fcae43d5ba9cd55b966f79fd265ae6068d817ff0a0857e2e20093787d
+AUX pango-1.28.3-malloc-failure.patch 6282 RMD160 5161f148cc68b35863ad846bb5bf208509e2b82f SHA1 43d5bcfc1df3e5651c3e4f3804e386e69a57d654 SHA256 6838d7a2aaf81b1434135254f6309e82f9b09292a6d5b00eb0f336e020b825cb
DIST pango-1.28.1.tar.bz2 1483961 RMD160 04531a54148a22dfcf7f3060501a0126f701ee18 SHA1 2d5907f0ff108cb9c27f69d8e4de564ff3d30221 SHA256 8f3eaab506f613dd25bb1fa65ea87a145d523d066d90c227bdb3016523451bc2
DIST pango-1.28.3.tar.bz2 1509501 RMD160 cdfd6d695b169e15801956fbfd54438c109f7a61 SHA1 e72887d6e147b9abf54628c003836e61d97767a1 SHA256 5e278bc9430cc7bb00270f183360d262c5006b51248e8b537ea904573f200632
-EBUILD pango-1.24.5-r1.ebuild 1803 RMD160 c7465bb78db73e8b12e8cd38a030add0d944da8d SHA1 9e5c0b1e9113d45c00a604604c57cda4fd50828a SHA256 188431199fc5dac7f0a2384b945259fd765c49bd7edd144034721585f2e7eb9a
-EBUILD pango-1.26.2.ebuild 2211 RMD160 62792d93bef836ad8928c1f6040865e148bbc552 SHA1 6f11e7f2f0ec7b993061b3e932bbb5d7b1ea5082 SHA256 3ab506a2b70b1bebdf96a08afa63ded0124ac4afa59e8b7aea00b0912f8b01e8
EBUILD pango-1.28.1.ebuild 1934 RMD160 a7ece8083c7bef285a4c4d7d971e237efa099b2b SHA1 fdddcdd729f8752e4ecff7952064f1c51aaa621c SHA256 dbdc2360e95c760fe05bbb35677078f5a2e3f716fdf5cb08309afa11a3545f90
+EBUILD pango-1.28.3-r1.ebuild 2326 RMD160 76ebef23074a03daef1f867642bae168f508a4d6 SHA1 ac65dd35e532a3555a7e3f81ba7ed5a2a75e1688 SHA256 cd7a1c3978129bb8935f322af583178f420aa464f20cf706dd25c297f128404c
EBUILD pango-1.28.3.ebuild 2054 RMD160 5dc6cbeda62376891ea7054d2d9f8a98efd8b80d SHA1 3aaf03af95ec45a95d5b9bf5030621de86ce505d SHA256 cb1320306c86da8dece6cf715729d9b62bcb1edd94dcb86bc4b22f7675e25983
-MISC ChangeLog 37692 RMD160 7c4dcb432efeba958c7f02983b032a565c4d8750 SHA1 1f33e927e2d49d048cb3846bba595f862f413131 SHA256 af8733d88243b00a954913513bc3da575a2a377e14db1208f573ef8611baf10f
+MISC ChangeLog 38085 RMD160 b76706eec81b88a8d439cbb27bfe094886599dce SHA1 d39a2a4de07d14eeca472186f37c20e59457c987 SHA256 61903caec99bf22382400c07f32c7002415e73923b242eb3184b98ba3a866e2e
MISC metadata.xml 272 RMD160 94ca2c5330dafece28a4cd39f8c53c0926c72b58 SHA1 0594029445efc117f85d07402cacb33f063a8198 SHA256 d6cd612b3d4d224cec4189a81e42dc98ba6fd96ce241908b57491d78f99e6314
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.0.17 (GNU/Linux)
+
+iEYEARECAAYFAk17vCgACgkQCaWpQKGI+9QcPACeLNrEE3uM+n9qThEIWZct9KoK
+BTkAnjQ20Q2l11Kn8pmKZyiuiaQ8RG73
+=ES54
+-----END PGP SIGNATURE-----
diff --git a/x11-libs/pango/files/pango-1.2.5-lib64.patch b/x11-libs/pango/files/pango-1.2.5-lib64.patch
deleted file mode 100644
index c709c270eae2..000000000000
--- a/x11-libs/pango/files/pango-1.2.5-lib64.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-#--- pango-1.2.5/pango/Makefile.am.lib64 2003-08-25 10:12:45.000000000 -0400
-#+++ pango-1.2.5/pango/Makefile.am 2003-12-08 18:43:51.000000000 -0500
-#@@ -16,6 +16,7 @@
-# -DPANGO_ENABLE_BACKEND \
-# -DPANGO_ENABLE_ENGINE \
-# -DSYSCONFDIR=\"$(sysconfdir)\" \
-#+ -DHOST=\"$(host_triplet)\" \
-# -DLIBDIR=\"$(libdir)\" \
-# -DMODULE_VERSION=\"$(PANGO_MODULE_VERSION)\" \
-# -DG_DISABLE_DEPRECATED \
---- pango-1.2.5/pango/modules.c.lib64 2002-12-06 19:54:27.000000000 -0500
-+++ pango-1.2.5/pango/modules.c 2003-12-08 18:43:51.000000000 -0500
-@@ -353,6 +353,7 @@
-
- if (!file_str)
- file_str = g_build_filename (pango_get_sysconf_subdirectory (),
-+ HOST,
- "pango.modules",
- NULL);
-
---- pango-1.2.5/pango/Makefile.in.lib64 2003-12-09 10:48:24.000000000 -0500
-+++ pango-1.2.5/pango/Makefile.in 2003-12-09 10:48:32.000000000 -0500
-@@ -135,6 +135,7 @@
- -DPANGO_ENABLE_BACKEND \
- -DPANGO_ENABLE_ENGINE \
- -DSYSCONFDIR=\"$(sysconfdir)\" \
-+ -DHOST=\"$(host_triplet)\" \
- -DLIBDIR=\"$(libdir)\" \
- -DMODULE_VERSION=\"$(PANGO_MODULE_VERSION)\" \
- -DG_DISABLE_DEPRECATED \
diff --git a/x11-libs/pango/files/pango-1.26.0-introspection-automagic.patch b/x11-libs/pango/files/pango-1.26.0-introspection-automagic.patch
deleted file mode 100644
index b699b176c094..000000000000
--- a/x11-libs/pango/files/pango-1.26.0-introspection-automagic.patch
+++ /dev/null
@@ -1,214 +0,0 @@
-Use the introspection.m4 macro for checking for introspection. Fixes automagic,
-and keeps variable name consistency across modules.
-
----
---- configure.in
-+++ configure.in
-@@ -58,6 +58,7 @@
- AM_INIT_AUTOMAKE(1.9 gnits dist-bzip2 no-dist-gzip -Wno-portability)
- m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
- AM_CONFIG_HEADER([config.h])
-+AC_CONFIG_MACRO_DIR([m4])
-
-
- PANGO_VERSION_MAJOR=pango_version_major()
-@@ -493,27 +494,7 @@
- #
- # Checks for GObject Introspection
- #
--have_introspection=false
--PKG_CHECK_MODULES(INTROSPECTION, gobject-introspection-1.0 >= 0.6.4, have_introspection=true, have_introspection=false)
--AM_CONDITIONAL(HAVE_INTROSPECTION, $have_introspection)
--
--G_IR_SCANNER=
--G_IR_COMPILER=
--G_IR_GENERATE=
--GIRDIR=
--TYPELIBDIR=
--if $have_introspection; then
-- G_IR_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
-- G_IR_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
-- G_IR_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
-- GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
-- TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
--fi
--AC_SUBST(G_IR_SCANNER)
--AC_SUBST(G_IR_COMPILER)
--AC_SUBST(G_IR_GENERATE)
--AC_SUBST(GIRDIR)
--AC_SUBST(TYPELIBDIR)
-+GOBJECT_INTROSPECTION_CHECK(0.6.4)
-
- #
- # Modules to build
---- m4/introspection.m4
-+++ m4/introspection.m4
-@@ -0,0 +1,92 @@
-+dnl -*- mode: autoconf -*-
-+dnl Copyright 2009 Johan Dahlin
-+dnl
-+dnl This file is free software; the author(s) gives unlimited
-+dnl permission to copy and/or distribute it, with or without
-+dnl modifications, as long as this notice is preserved.
-+dnl
-+
-+# serial 1
-+
-+m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL],
-+[
-+ AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
-+ AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
-+ AC_BEFORE([LT_INIT],[$0])dnl setup libtool first
-+
-+ dnl enable/disable introspection
-+ m4_if([$2], [require],
-+ [dnl
-+ enable_introspection=yes
-+ ],[dnl
-+ AC_ARG_ENABLE(introspection,
-+ AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]],
-+ [Enable introspection for this build]),,
-+ [enable_introspection=auto])
-+ ])dnl
-+
-+ AC_MSG_CHECKING([for gobject-introspection])
-+
-+ dnl presence/version checking
-+ AS_CASE([$enable_introspection],
-+ [no], [dnl
-+ found_introspection="no (disabled, use --enable-introspection to enable)"
-+ ],dnl
-+ [yes],[dnl
-+ PKG_CHECK_EXISTS([gobject-introspection-1.0],,
-+ AC_MSG_ERROR([gobject-introspection-1.0 is not installed]))
-+ PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1],
-+ found_introspection=yes,
-+ AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME]))
-+ ],dnl
-+ [auto],[dnl
-+ PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no)
-+ ],dnl
-+ [dnl
-+ AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@])
-+ ])dnl
-+
-+ AC_MSG_RESULT([$found_introspection])
-+
-+ INTROSPECTION_SCANNER=
-+ INTROSPECTION_COMPILER=
-+ INTROSPECTION_GENERATE=
-+ INTROSPECTION_GIRDIR=
-+ INTROSPECTION_TYPELIBDIR=
-+ if test "x$found_introspection" = "xyes"; then
-+ INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
-+ INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
-+ INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
-+ INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
-+ INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
-+ INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
-+ INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
-+ fi
-+ AC_SUBST(INTROSPECTION_SCANNER)
-+ AC_SUBST(INTROSPECTION_COMPILER)
-+ AC_SUBST(INTROSPECTION_GENERATE)
-+ AC_SUBST(INTROSPECTION_GIRDIR)
-+ AC_SUBST(INTROSPECTION_TYPELIBDIR)
-+ AC_SUBST(INTROSPECTION_CFLAGS)
-+ AC_SUBST(INTROSPECTION_LIBS)
-+
-+ AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes")
-+])
-+
-+
-+dnl Usage:
-+dnl GOBJECT_INTROSPECTION_CHECK([minimum-g-i-version])
-+
-+AC_DEFUN([GOBJECT_INTROSPECTION_CHECK],
-+[
-+ _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1])
-+])
-+
-+dnl Usage:
-+dnl GOBJECT_INTROSPECTION_REQUIRE([minimum-g-i-version])
-+
-+
-+AC_DEFUN([GOBJECT_INTROSPECTION_REQUIRE],
-+[
-+ _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require])
-+])
---- Makefile.am
-+++ Makefile.am
-@@ -2,6 +2,8 @@
-
- SUBDIRS= pango modules pango-view examples docs tools tests
-
-+ACLOCAL_AMFLAGS = -I m4 -I .
-+
- EXTRA_DIST = \
- autogen.sh \
- pango.pc.in \
---- pango/Makefile.am
-+++ pango/Makefile.am
-@@ -163,8 +163,8 @@
- Pango-1.0.gir: $(libpango_1_0_la_SOURCES)
- Pango-1.0.gir: $(pango_headers)
- Pango-1.0.gir: libpango-1.0.la
--Pango-1.0.gir: $(G_IR_SCANNER) Makefile
-- $(AM_V_GEN) $(G_IR_SCANNER) -v --namespace Pango --nsversion=1.0 \
-+Pango-1.0.gir: $(INTROSPECTION_SCANNER) Makefile
-+ $(AM_V_GEN) $(INTROSPECTION_SCANNER) -v --namespace Pango --nsversion=1.0 \
- --add-include-path=$(srcdir) --add-include-path=. \
- --include=GObject-2.0 \
- --include=cairo-1.0 \
-@@ -278,8 +278,8 @@
- PangoFT2-1.0.gir: $(pangoft2_headers)
- PangoFT2-1.0.gir: $(libpangoft2_1_0_la_SOURCES)
- PangoFT2-1.0.gir: libpangoft2-1.0.la
--PangoFT2-1.0.gir: Pango-1.0.gir $(G_IR_SCANNER) Makefile
-- $(AM_V_GEN) $(G_IR_SCANNER) -v --namespace PangoFT2 --nsversion=1.0 \
-+PangoFT2-1.0.gir: Pango-1.0.gir $(INTROSPECTION_SCANNER) Makefile
-+ $(AM_V_GEN) $(INTROSPECTION_SCANNER) -v --namespace PangoFT2 --nsversion=1.0 \
- --add-include-path=$(srcdir) --add-include-path=. \
- --include=GObject-2.0 \
- --include=Pango-1.0 \
-@@ -335,8 +335,8 @@
- PangoXft-1.0.gir: $(pangoxft_headers)
- PangoXft-1.0.gir: $(libpangoxft_1_0_la_SOURCES)
- PangoXft-1.0.gir: libpangoxft-1.0.la
--PangoXft-1.0.gir: Pango-1.0.gir PangoFT2-1.0.gir $(G_IR_SCANNER) Makefile
-- $(AM_V_GEN) $(G_IR_SCANNER) -v --namespace PangoXft --nsversion=1.0 \
-+PangoXft-1.0.gir: Pango-1.0.gir PangoFT2-1.0.gir $(INTROSPECTION_SCANNER) Makefile
-+ $(AM_V_GEN) $(INTROSPECTION_SCANNER) -v --namespace PangoXft --nsversion=1.0 \
- --add-include-path=$(srcdir) --add-include-path=. \
- --include=GObject-2.0 \
- --include=xft-2.0 \
-@@ -424,8 +424,8 @@
- PangoCairo-1.0.gir: $(libpangocairo_1_0_la_SOURCES)
- PangoCairo-1.0.gir: $(pangocairo_headers)
- PangoCairo-1.0.gir: libpangocairo-1.0.la
--PangoCairo-1.0.gir: Pango-1.0.gir $(PANGOCAIRO_FONT_BACKEND_GI_MODULE).gir $(G_IR_SCANNER) Makefile
-- $(AM_V_GEN) $(G_IR_SCANNER) -v --namespace PangoCairo --nsversion=1.0 \
-+PangoCairo-1.0.gir: Pango-1.0.gir $(PANGOCAIRO_FONT_BACKEND_GI_MODULE).gir $(INTROSPECTION_SCANNER) Makefile
-+ $(AM_V_GEN) $(INTROSPECTION_SCANNER) -v --namespace PangoCairo --nsversion=1.0 \
- --add-include-path=$(srcdir) --add-include-path=. \
- --include=GObject-2.0 \
- --include=cairo-1.0 \
-@@ -551,14 +551,14 @@
-
- if HAVE_INTROSPECTION
-
--girdir = $(GIRDIR)
-+girdir = $(INTROSPECTION_GIRDIR)
- gir_DATA = $(BUILT_GIRSOURCES)
-
--typelibsdir = $(TYPELIBDIR)
-+typelibsdir = $(INTROSPECTION_TYPELIBDIR)
- typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
-
--%.typelib: %.gir $(G_IR_COMPILER)
-- $(AM_V_GEN) LD_LIBRARY_PATH=$${LD_LIBRARY_PATH:+$$LD_LIBRARY_PATH:}. $(G_IR_COMPILER) --includedir=$(srcdir) --includedir=. $(G_IR_COMPILER_OPTS) $< -o $(builddir)/$(@F)
-+%.typelib: %.gir $(INTROSPECTION_COMPILER)
-+ $(AM_V_GEN) LD_LIBRARY_PATH=$${LD_LIBRARY_PATH:+$$LD_LIBRARY_PATH:}. $(INTROSPECTION_COMPILER) --includedir=$(srcdir) --includedir=. $(INTROSPECTION_COMPILER_OPTS) $< -o $(builddir)/$(@F)
-
- endif # HAVE_INTROSPECTION
-
diff --git a/x11-libs/pango/files/pango-1.28.3-heap-corruption.patch b/x11-libs/pango/files/pango-1.28.3-heap-corruption.patch
new file mode 100644
index 000000000000..692f69867eda
--- /dev/null
+++ b/x11-libs/pango/files/pango-1.28.3-heap-corruption.patch
@@ -0,0 +1,50 @@
+From 4e6248d76f55c6184f28afe614d7d76b6fa3d455 Mon Sep 17 00:00:00 2001
+From: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu, 17 Feb 2011 16:19:48 +0000
+Subject: Bug 639882 - Heap corruption in font parsing with FreeType2 backend
+
+---
+diff --git a/pango/pangoft2-render.c b/pango/pangoft2-render.c
+index bd3b7d4..42923f4 100644
+--- a/pango/pangoft2-render.c
++++ b/pango/pangoft2-render.c
+@@ -121,9 +121,14 @@ pango_ft2_font_render_box_glyph (int width,
+
+ box->bitmap.width = width;
+ box->bitmap.rows = height;
+- box->bitmap.pitch = height;
++ box->bitmap.pitch = width;
+
+- box->bitmap.buffer = g_malloc0 (box->bitmap.rows * box->bitmap.pitch);
++ box->bitmap.buffer = g_malloc0_n (box->bitmap.rows, box->bitmap.pitch);
++
++ if (G_UNLIKELY (!box->bitmap.buffer)) {
++ g_slice_free (PangoFT2RenderedGlyph, box);
++ return NULL;
++ }
+
+ /* draw the box */
+ for (j = 0; j < line_width; j++)
+@@ -226,6 +231,11 @@ pango_ft2_font_render_glyph (PangoFont *font,
+ rendered->bitmap_left = face->glyph->bitmap_left;
+ rendered->bitmap_top = face->glyph->bitmap_top;
+
++ if (G_UNLIKELY (!rendered->bitmap.buffer)) {
++ g_slice_free (PangoFT2RenderedGlyph, rendered);
++ return NULL;
++ }
++
+ return rendered;
+ }
+ else
+@@ -276,6 +286,8 @@ pango_ft2_renderer_draw_glyph (PangoRenderer *renderer,
+ if (rendered_glyph == NULL)
+ {
+ rendered_glyph = pango_ft2_font_render_glyph (font, glyph);
++ if (rendered_glyph == NULL)
++ return;
+ add_glyph_to_cache = TRUE;
+ }
+
+--
+cgit v0.8.3.4
diff --git a/x11-libs/pango/files/pango-1.28.3-malloc-failure.patch b/x11-libs/pango/files/pango-1.28.3-malloc-failure.patch
new file mode 100644
index 000000000000..e82f8e6a4c7f
--- /dev/null
+++ b/x11-libs/pango/files/pango-1.28.3-malloc-failure.patch
@@ -0,0 +1,186 @@
+From 3104961bc0ffaf847d2a1e116e6de4fdc1cd8ada Mon Sep 17 00:00:00 2001
+From: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu, 2 Dec 2010 16:00:46 +1300
+Subject: [PATCH] Handle realloc failure in the buffer
+
+Ported from http://cgit.freedesktop.org/harfbuzz/commit/?id=a6a79df5fe2e
+by Karl Tomlinson <karlt+@karlt.net>
+---
+ pango/opentype/hb-buffer-private.h | 1 +
+ pango/opentype/hb-buffer.c | 70 +++++++++++++++++++++---------------
+ pango/opentype/hb-buffer.h | 2 +-
+ 3 files changed, 43 insertions(+), 30 deletions(-)
+
+diff --git a/pango/opentype/hb-buffer-private.h b/pango/opentype/hb-buffer-private.h
+index 45cdc4d..f194786 100644
+--- a/pango/opentype/hb-buffer-private.h
++++ b/pango/opentype/hb-buffer-private.h
+@@ -72,6 +72,7 @@ struct _hb_buffer_t {
+ unsigned int allocated;
+
+ hb_bool_t have_output; /* weather we have an output buffer going on */
++ hb_bool_t in_error; /* Allocation failed */
+ unsigned int in_length;
+ unsigned int out_length;
+ unsigned int in_pos;
+diff --git a/pango/opentype/hb-buffer.c b/pango/opentype/hb-buffer.c
+index 93b51e5..e9788ad 100644
+--- a/pango/opentype/hb-buffer.c
++++ b/pango/opentype/hb-buffer.c
+@@ -52,23 +52,21 @@ static hb_buffer_t _hb_buffer_nil = {
+ * in_string and out_string.
+ */
+
+-/* XXX err handling */
+-
+ /* Internal API */
+
+-static void
++static hb_bool_t
+ hb_buffer_ensure_separate (hb_buffer_t *buffer, unsigned int size)
+ {
+- hb_buffer_ensure (buffer, size);
++ if (HB_UNLIKELY (!hb_buffer_ensure (buffer, size))) return FALSE;
+ if (buffer->out_string == buffer->in_string)
+ {
+ assert (buffer->have_output);
+- if (!buffer->positions)
+- buffer->positions = calloc (buffer->allocated, sizeof (buffer->positions[0]));
+
+ buffer->out_string = (hb_internal_glyph_info_t *) buffer->positions;
+ memcpy (buffer->out_string, buffer->in_string, buffer->out_length * sizeof (buffer->out_string[0]));
+ }
++
++ return TRUE;
+ }
+
+ /* Public API */
+@@ -114,6 +112,7 @@ void
+ hb_buffer_clear (hb_buffer_t *buffer)
+ {
+ buffer->have_output = FALSE;
++ buffer->in_error = FALSE;
+ buffer->in_length = 0;
+ buffer->out_length = 0;
+ buffer->in_pos = 0;
+@@ -122,32 +121,42 @@ hb_buffer_clear (hb_buffer_t *buffer)
+ buffer->max_lig_id = 0;
+ }
+
+-void
++hb_bool_t
+ hb_buffer_ensure (hb_buffer_t *buffer, unsigned int size)
+ {
+- unsigned int new_allocated = buffer->allocated;
+-
+- if (size > new_allocated)
++ if (HB_UNLIKELY (size > buffer->allocated))
+ {
++ unsigned int new_allocated = buffer->allocated;
++ hb_internal_glyph_position_t *new_pos;
++ hb_internal_glyph_info_t *new_info;
++ hb_bool_t separate_out;
++
++ if (HB_UNLIKELY (buffer->in_error))
++ return FALSE;
++
++ separate_out = buffer->out_string != buffer->in_string;
++
+ while (size > new_allocated)
+ new_allocated += (new_allocated >> 1) + 8;
+
+- if (buffer->positions)
+- buffer->positions = realloc (buffer->positions, new_allocated * sizeof (buffer->positions[0]));
++ new_pos = (hb_internal_glyph_position_t *) realloc (buffer->positions, new_allocated * sizeof (buffer->positions[0]));
++ new_info = (hb_internal_glyph_info_t *) realloc (buffer->in_string, new_allocated * sizeof (buffer->in_string[0]));
+
+- if (buffer->out_string != buffer->in_string)
+- {
+- buffer->in_string = realloc (buffer->in_string, new_allocated * sizeof (buffer->in_string[0]));
+- buffer->out_string = (hb_internal_glyph_info_t *) buffer->positions;
+- }
+- else
+- {
+- buffer->in_string = realloc (buffer->in_string, new_allocated * sizeof (buffer->in_string[0]));
+- buffer->out_string = buffer->in_string;
+- }
++ if (HB_UNLIKELY (!new_pos || !new_info))
++ buffer->in_error = TRUE;
++
++ if (HB_LIKELY (new_pos))
++ buffer->positions = new_pos;
+
+- buffer->allocated = new_allocated;
++ if (HB_LIKELY (new_info))
++ buffer->in_string = new_info;
++
++ buffer->out_string = separate_out ? (hb_internal_glyph_info_t *) buffer->positions : buffer->in_string;
++ if (HB_LIKELY (!buffer->in_error))
++ buffer->allocated = new_allocated;
+ }
++
++ return HB_LIKELY (!buffer->in_error);
+ }
+
+ void
+@@ -158,7 +167,7 @@ hb_buffer_add_glyph (hb_buffer_t *buffer,
+ {
+ hb_internal_glyph_info_t *glyph;
+
+- hb_buffer_ensure (buffer, buffer->in_length + 1);
++ if (HB_UNLIKELY (!hb_buffer_ensure (buffer, buffer->in_length + 1))) return;
+
+ glyph = &buffer->in_string[buffer->in_length];
+ glyph->codepoint = codepoint;
+@@ -213,6 +222,8 @@ _hb_buffer_swap (hb_buffer_t *buffer)
+
+ assert (buffer->have_output);
+
++ if (HB_UNLIKELY (buffer->in_error)) return;
++
+ if (buffer->out_string != buffer->in_string)
+ {
+ hb_internal_glyph_info_t *tmp_string;
+@@ -265,7 +276,8 @@ _hb_buffer_add_output_glyphs (hb_buffer_t *buffer,
+ if (buffer->out_string != buffer->in_string ||
+ buffer->out_pos + num_out > buffer->in_pos + num_in)
+ {
+- hb_buffer_ensure_separate (buffer, buffer->out_pos + num_out);
++ if (HB_UNLIKELY (!hb_buffer_ensure_separate (buffer, buffer->out_pos + num_out)))
++ return;
+ }
+
+ mask = buffer->in_string[buffer->in_pos].mask;
+@@ -302,7 +314,7 @@ _hb_buffer_add_output_glyph (hb_buffer_t *buffer,
+
+ if (buffer->out_string != buffer->in_string)
+ {
+- hb_buffer_ensure (buffer, buffer->out_pos + 1);
++ if (HB_UNLIKELY (!hb_buffer_ensure (buffer, buffer->out_pos + 1))) return;
+ buffer->out_string[buffer->out_pos] = buffer->in_string[buffer->in_pos];
+ }
+ else if (buffer->out_pos != buffer->in_pos)
+@@ -332,7 +344,7 @@ _hb_buffer_next_glyph (hb_buffer_t *buffer)
+
+ if (buffer->out_string != buffer->in_string)
+ {
+- hb_buffer_ensure (buffer, buffer->out_pos + 1);
++ if (HB_UNLIKELY (!hb_buffer_ensure (buffer, buffer->out_pos + 1))) return;
+ buffer->out_string[buffer->out_pos] = buffer->in_string[buffer->in_pos];
+ }
+ else if (buffer->out_pos != buffer->in_pos)
+diff --git a/pango/opentype/hb-buffer.h b/pango/opentype/hb-buffer.h
+index b030ba9..aaf6694 100644
+--- a/pango/opentype/hb-buffer.h
++++ b/pango/opentype/hb-buffer.h
+@@ -94,7 +94,7 @@ hb_buffer_clear (hb_buffer_t *buffer);
+ void
+ hb_buffer_clear_positions (hb_buffer_t *buffer);
+
+-void
++hb_bool_t
+ hb_buffer_ensure (hb_buffer_t *buffer,
+ unsigned int size);
+
+--
+1.7.2.2
diff --git a/x11-libs/pango/pango-1.24.5-r1.ebuild b/x11-libs/pango/pango-1.24.5-r1.ebuild
deleted file mode 100644
index 58117a2e7d62..000000000000
--- a/x11-libs/pango/pango-1.24.5-r1.ebuild
+++ /dev/null
@@ -1,74 +0,0 @@
-# Copyright 1999-2009 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/x11-libs/pango/pango-1.24.5-r1.ebuild,v 1.12 2009/11/28 17:39:38 remi Exp $
-
-EAPI="2"
-GCONF_DEBUG="yes"
-
-inherit eutils gnome2 multilib
-
-DESCRIPTION="Internationalized text layout and rendering library"
-HOMEPAGE="http://www.pango.org/"
-
-LICENSE="LGPL-2 FTL"
-SLOT="0"
-KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~x86-fbsd"
-IUSE="X doc test"
-
-# FIXME: add gobject-introspection dependency when it is available
-RDEPEND=">=dev-libs/glib-2.17.3
- >=media-libs/fontconfig-2.5.0
- media-libs/freetype:2
- >=x11-libs/cairo-1.7.6[X?]
- X? (
- x11-libs/libXrender
- x11-libs/libX11
- x11-libs/libXft )"
-DEPEND="${RDEPEND}
- >=dev-util/pkgconfig-0.9
- doc? ( >=dev-util/gtk-doc-1
- ~app-text/docbook-xml-dtd-4.1.2
- x11-libs/libXft )
- test? ( >=dev-util/gtk-doc-1
- ~app-text/docbook-xml-dtd-4.1.2
- x11-libs/libXft )
- X? ( x11-proto/xproto )"
-
-DOCS="AUTHORS ChangeLog* NEWS README THANKS"
-
-function multilib_enabled() {
- has_multilib_profile || ( use x86 && [ "$(get_libdir)" = "lib32" ] )
-}
-
-pkg_setup() {
- G2CONF="${G2CONF} $(use_with X x)"
-}
-
-src_prepare() {
- gnome2_src_prepare
-
- # make config file location host specific so that a 32bit and 64bit pango
- # wont fight with each other on a multilib system. Fix building for
- # emul-linux-x86-gtklibs
- if multilib_enabled ; then
- epatch "${FILESDIR}/${PN}-1.2.5-lib64.patch"
- fi
-}
-
-pkg_postinst() {
- if [ "${ROOT}" = "/" ] ; then
- einfo "Generating modules listing..."
-
- local PANGO_CONFDIR=
-
- if multilib_enabled ; then
- PANGO_CONFDIR="/etc/pango/${CHOST}"
- else
- PANGO_CONFDIR="/etc/pango"
- fi
-
- mkdir -p ${PANGO_CONFDIR}
-
- pango-querymodules > ${PANGO_CONFDIR}/pango.modules
- fi
-}
diff --git a/x11-libs/pango/pango-1.26.2.ebuild b/x11-libs/pango/pango-1.28.3-r1.ebuild
index 5542681cce19..52f573024c89 100644
--- a/x11-libs/pango/pango-1.26.2.ebuild
+++ b/x11-libs/pango/pango-1.28.3-r1.ebuild
@@ -1,8 +1,8 @@
-# Copyright 1999-2010 Gentoo Foundation
+# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/x11-libs/pango/pango-1.26.2.ebuild,v 1.8 2010/08/18 20:51:09 maekke Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/pango/pango-1.28.3-r1.ebuild,v 1.1 2011/03/12 18:32:04 pacho Exp $
-EAPI="2"
+EAPI="3"
GCONF_DEBUG="yes"
inherit autotools eutils gnome2 multilib toolchain-funcs
@@ -12,11 +12,11 @@ HOMEPAGE="http://www.pango.org/"
LICENSE="LGPL-2 FTL"
SLOT="0"
-KEYWORDS="alpha amd64 arm hppa ia64 ~mips ~ppc ppc64 s390 sh sparc x86 ~x86-fbsd"
-IUSE="X doc test"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd"
+IUSE="X doc +introspection test"
-RDEPEND=">=dev-libs/glib-2.17.3
- >=media-libs/fontconfig-2.5.0
+RDEPEND=">=dev-libs/glib-2.17.3:2
+ >=media-libs/fontconfig-2.5.0:1.0
media-libs/freetype:2
>=x11-libs/cairo-1.7.6[X?]
X? (
@@ -25,29 +25,28 @@ RDEPEND=">=dev-libs/glib-2.17.3
x11-libs/libXft )"
DEPEND="${RDEPEND}
>=dev-util/pkgconfig-0.9
- dev-util/gtk-doc-am
+ >=dev-util/gtk-doc-am-1.13
doc? (
- >=dev-util/gtk-doc-1
+ >=dev-util/gtk-doc-1.13
~app-text/docbook-xml-dtd-4.1.2
x11-libs/libXft )
+ introspection? ( >=dev-libs/gobject-introspection-0.9.5 )
test? (
- >=dev-util/gtk-doc-1
+ >=dev-util/gtk-doc-1.13
~app-text/docbook-xml-dtd-4.1.2
x11-libs/libXft )
X? ( x11-proto/xproto )"
-DOCS="AUTHORS ChangeLog* NEWS README THANKS"
-
function multilib_enabled() {
has_multilib_profile || ( use x86 && [ "$(get_libdir)" = "lib32" ] )
}
pkg_setup() {
tc-export CXX
- # XXX: DO NOT add introspection support, collides with gir-repository[pango]
G2CONF="${G2CONF}
- --disable-introspection
+ $(use_enable introspection)
$(use_with X x)"
+ DOCS="AUTHORS ChangeLog* NEWS README THANKS"
}
src_prepare() {
@@ -60,17 +59,20 @@ src_prepare() {
epatch "${FILESDIR}/${PN}-1.26.0-lib64.patch"
fi
- # gtk-doc checks do not pass, upstream bug #578944
- sed -e 's:TESTS = check.docs: TESTS = :g' \
- -i docs/Makefile.am || die "sed failed"
+ # Fix heap corruption in font parsing with FreeType2 backend, upstream bug #639882
+ epatch "${FILESDIR}/${PN}-1.28.3-heap-corruption.patch"
- # Fix introspection automagic.
- # https://bugzilla.gnome.org/show_bug.cgi?id=596506
- epatch "${FILESDIR}/${PN}-1.26.0-introspection-automagic.patch"
+ # Handle malloc failure in the buffer, upstream #644577
+ epatch "${FILESDIR}/${PN}-1.28.3-malloc-failure.patch"
eautoreconf
}
+src_install() {
+ gnome2_src_install
+ find "${ED}/usr/$(get_libdir)/pango/1.6.0/modules" -name "*.la" -delete || die
+}
+
pkg_postinst() {
if [ "${ROOT}" = "/" ] ; then
einfo "Generating modules listing..."