diff options
Diffstat (limited to 'x11-libs/pango/files')
4 files changed, 236 insertions, 244 deletions
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 |