SHA256
1
0
forked from pool/freetype2

- Update to version 2.9.1

* Type 1 fonts containing flex features were not rendered
    correctly (bug introduced in version 2.9).
  * CVE-2018-6942: Older FreeType versions can crash with certain
    malformed variation fonts.
  * Bug fix: Multiple calls to `FT_Get_MM_Var' returned garbage.
  * Emboldening of bitmaps didn't work correctly sometimes, showing
    various artifacts (bug introduced in version 2.8.1).
  * The auto-hinter script ranges have  been updated for Unicode 11.
    No support for new scripts have been added, however,  with the
    exception of Georgian Mtavruli.
- Drop upstreamed patches:
  * bnc1079600.patch
  * psaux-flex.patch
  * 0001-src-truetype-ttinterp.c-Ins_GETVARIATION-Avoid-NULL-.patch
  * 0001-truetype-Better-protection-against-invalid-VF-data.patch

- Update to version 2.9.1
  * No changelog upstream.

OBS-URL: https://build.opensuse.org/package/show/M17N/freetype2?expand=0&rev=147
This commit is contained in:
Ismail Dönmez 2018-05-02 11:15:13 +00:00 committed by Git OBS Bridge
parent 384e575615
commit 4600f62e52
14 changed files with 44 additions and 197 deletions

View File

@ -1,21 +0,0 @@
--- a/src/truetype/ttinterp.c
+++ b/src/truetype/ttinterp.c
@@ -7532,8 +7532,16 @@
return;
}
- for ( i = 0; i < num_axes; i++ )
- args[i] = coords[i] >> 2; /* convert 16.16 to 2.14 format */
+ if ( coords )
+ {
+ for ( i = 0; i < num_axes; i++ )
+ args[i] = coords[i] >> 2; /* convert 16.16 to 2.14 format */
+ }
+ else
+ {
+ for ( i = 0; i < num_axes; i++ )
+ args[i] = 0;
+ }
}

View File

@ -1,14 +0,0 @@
--- a/src/truetype/ttgxvar.c
+++ b/src/truetype/ttgxvar.c
@@ -2821,8 +2821,9 @@
}
}
- /* return value -1 indicates `no change' */
- if ( !have_diff )
+ /* return value -1 indicates `no change'; */
+ /* we can exit early if `normalizedcoords' is already computed */
+ if ( blend->normalizedcoords && !have_diff )
return -1;
if ( FT_NEW_ARRAY( normalized, mmvar->num_axis ) )

View File

@ -1,94 +0,0 @@
References: https://git.savannah.gnu.org/cgit/freetype/freetype2.git/commit/?id=4a03f17449ae45f0dacf4de4694ccd6e5e1b24d1
Upstream: merged
From: Karol Babioch <kbabioch@suse.de>
Date: Thu Mar 8 17:52:43 CET 2018
Avoid integer overflow issues
diff --git a/src/truetype/ttinterp.c b/src/truetype/ttinterp.c
index 551f14a2e..5c8ff4f3d 100644
--- a/src/truetype/ttinterp.c
+++ b/src/truetype/ttinterp.c
@@ -5782,6 +5782,7 @@
FT_F26Dot6 distance;
#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
FT_F26Dot6 control_value_cutin = 0;
+ FT_F26Dot6 delta;
if ( SUBPIXEL_HINTING_INFINALITY )
@@ -5817,11 +5818,15 @@
distance = PROJECT( exc->zp1.cur + point, exc->zp0.cur + exc->GS.rp0 );
#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
+ delta = SUB_LONG( distance, args[1] );
+ if ( delta < 0 )
+ delta = NEG_LONG( delta );
+
/* subpixel hinting - make MSIRP respect CVT cut-in; */
- if ( SUBPIXEL_HINTING_INFINALITY &&
- exc->ignore_x_mode &&
- exc->GS.freeVector.x != 0 &&
- FT_ABS( SUB_LONG( distance, args[1] ) ) >= control_value_cutin )
+ if ( SUBPIXEL_HINTING_INFINALITY &&
+ exc->ignore_x_mode &&
+ exc->GS.freeVector.x != 0 &&
+ delta >= control_value_cutin )
distance = args[1];
#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
@@ -5978,7 +5983,14 @@
if ( ( exc->opcode & 1 ) != 0 ) /* rounding and control cut-in flag */
{
- if ( FT_ABS( distance - org_dist ) > control_value_cutin )
+ FT_F26Dot6 delta;
+
+
+ delta = SUB_LONG( distance, org_dist );
+ if ( delta < 0 )
+ delta = NEG_LONG( delta );
+
+ if ( delta > control_value_cutin )
distance = org_dist;
#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
@@ -6259,6 +6271,9 @@
if ( exc->GS.gep0 == exc->GS.gep1 )
{
+ FT_F26Dot6 delta;
+
+
/* XXX: According to Greg Hitchcock, the following wording is */
/* the right one: */
/* */
@@ -6271,7 +6286,11 @@
/* `ttinst2.doc', version 1.66, is thus incorrect since */
/* it implies `>=' instead of `>'. */
- if ( FT_ABS( cvt_dist - org_dist ) > control_value_cutin )
+ delta = SUB_LONG( cvt_dist, org_dist );
+ if ( delta < 0 )
+ delta = NEG_LONG( delta );
+
+ if ( delta > control_value_cutin )
cvt_dist = org_dist;
}
@@ -6289,7 +6308,14 @@
exc->ignore_x_mode &&
exc->GS.gep0 == exc->GS.gep1 )
{
- if ( FT_ABS( cvt_dist - org_dist ) > control_value_cutin )
+ FT_F26Dot6 delta;
+
+
+ delta = SUB_LONG( cvt_dist, org_dist );
+ if ( delta < 0 )
+ delta = NEG_LONG( delta );
+
+ if ( delta > control_value_cutin )
cvt_dist = org_dist;
}
#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */

3
freetype-2.9.1.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:db8d87ea720ea9d5edc5388fc7a0497bb11ba9fe972245e0f7f4c7e8b1e1e84d
size 1926385

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e6ffba3c8cef93f557d1f767d7bc3dee860ac7a3aaff588a521e081bc36f4c8a
size 1915013

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:aa2f835ef8f50072630ddc48b9eb65f1f456014ffa3b5adddcb6bf390a3c5828
size 2130292

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7bbc3b067a465ae62484ba097c6d468ab0724c30b3d6329c77324c8901d03d78
size 2128135

View File

@ -1,3 +1,23 @@
-------------------------------------------------------------------
Wed May 2 10:54:32 UTC 2018 - idonmez@suse.com
- Update to version 2.9.1
* Type 1 fonts containing flex features were not rendered
correctly (bug introduced in version 2.9).
* CVE-2018-6942: Older FreeType versions can crash with certain
malformed variation fonts.
* Bug fix: Multiple calls to `FT_Get_MM_Var' returned garbage.
* Emboldening of bitmaps didn't work correctly sometimes, showing
various artifacts (bug introduced in version 2.8.1).
* The auto-hinter script ranges have been updated for Unicode 11.
No support for new scripts have been added, however, with the
exception of Georgian Mtavruli.
- Drop upstreamed patches:
* bnc1079600.patch
* psaux-flex.patch
* 0001-src-truetype-ttinterp.c-Ins_GETVARIATION-Avoid-NULL-.patch
* 0001-truetype-Better-protection-against-invalid-VF-data.patch
-------------------------------------------------------------------
Thu Mar 8 16:47:21 UTC 2018 - kbabioch@suse.com

View File

@ -16,9 +16,9 @@
#
%define doc_version 2.9
%define doc_version 2.9.1
Name: freetype2
Version: 2.9
Version: 2.9.1
Release: 0
Summary: A TrueType Font Library
License: SUSE-Freetype OR GPL-2.0-or-later
@ -31,12 +31,7 @@ Source3: baselibs.conf
Patch0: bugzilla-308961-cmex-workaround.patch
# PATCH-FIX-OPENSUSE don-t-mark-libpng-as-required-library.patch -- it is private in .pc
Patch1: don-t-mark-libpng-as-required-library.patch
# PATCH-FIX-UPSTREAM psaux-flex.patch -- Upstream commit cc2f3cdecff5a351e7e8961b9f2e389ab740231a
Patch2: psaux-flex.patch
Patch3: 0001-src-truetype-ttinterp.c-Ins_GETVARIATION-Avoid-NULL-.patch
Patch4: 0001-truetype-Better-protection-against-invalid-VF-data.patch
Patch5: enable-long-family-names-by-default.patch
Patch6: bnc1079600.patch
Patch2: enable-long-family-names-by-default.patch
BuildRequires: gawk
BuildRequires: libbz2-devel
BuildRequires: libpng-devel
@ -102,10 +97,6 @@ It also contains a small tutorial for using that library.
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%build
export CFLAGS="%{optflags} -std=gnu99 -D_GNU_SOURCE $(getconf LFS_CFLAGS)"
@ -123,6 +114,8 @@ install -Dm 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/profile.d/%{name}.sh
# remove documentation that does not belong in an rpm
rm docs/INSTALL*
rm %{buildroot}%{_libdir}/libfreetype.la
%post -n libfreetype6 -p /sbin/ldconfig
%postun -n libfreetype6 -p /sbin/ldconfig
@ -137,15 +130,8 @@ rm docs/INSTALL*
%files devel
%doc docs/reference/*
%{_includedir}/*
%if 0%{?suse_version} >= 1140
%exclude %{_libdir}/libfreetype.*a
%else
%{_libdir}/libfreetype.*a
%endif
%{_libdir}/libfreetype.so
%{_libdir}/pkgconfig/freetype2.pc
%{_bindir}/*
%{_datadir}/aclocal
%{_mandir}/man1/freetype-config*
%changelog

3
ft2demos-2.9.1.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:806eb6363ee5963174a6740f9b7893377912165899c2c1f6372c422aab818c6a
size 233462

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:874b20b6ebe514ba6acf9f6d1d63df21723206996179198121a68fd1f86cdee7
size 230926

View File

@ -1,3 +1,9 @@
-------------------------------------------------------------------
Wed May 2 10:56:39 UTC 2018 - idonmez@suse.com
- Update to version 2.9.1
* No changelog upstream.
-------------------------------------------------------------------
Tue Mar 20 10:21:23 UTC 2018 - ecsos@opensuse.org

View File

@ -16,16 +16,16 @@
#
%define freetype_version 2.9
%define freetype_version 2.9.1
Name: ft2demos
Version: 2.9
Version: 2.9.1
Release: 0
Summary: Freetype2 Utilities and Demo Programs
License: GPL-2.0-or-later
Group: Productivity/Publishing/Other
Url: https://www.freetype.org
Source0: https://savannah.nongnu.org/download/freetype/freetype-%{freetype_version}.tar.bz2
Source1: https://savannah.nongnu.org/download/freetype/ft2demos-%{version}.tar.bz2
Source0: https://download.savannah.nongnu.org/releases/freetype/freetype-%{freetype_version}.tar.bz2
Source1: https://download.savannah.nongnu.org/releases/freetype/ft2demos-%{version}.tar.bz2
Source1000: bnc628213_test.otf
Source1004: bnc629447_sigsegv31.ttf
Source1013: bnc633938_badbdf.0

View File

@ -1,36 +0,0 @@
From cc2f3cdecff5a351e7e8961b9f2e389ab740231a Mon Sep 17 00:00:00 2001
From: Ewald Hew <ewaldhew@gmail.com>
Date: Wed, 10 Jan 2018 13:24:56 +0800
Subject: [psaux] Correctly handle Flex features (#52846).
* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdVMOVETO,
cf2_cmdHMOVETO>: Do not move if doing Flex.
---
ChangeLog | 7 +++++++
src/psaux/psintrp.c | 6 ++++--
2 files changed, 11 insertions(+), 2 deletions(-)
Index: freetype-2.9/src/psaux/psintrp.c
===================================================================
--- freetype-2.9.orig/src/psaux/psintrp.c
+++ freetype-2.9/src/psaux/psintrp.c
@@ -852,7 +852,8 @@
curY = ADD_INT32( curY, cf2_stack_popFixed( opStack ) );
- cf2_glyphpath_moveTo( &glyphPath, curX, curY );
+ if ( !decoder->flex_state )
+ cf2_glyphpath_moveTo( &glyphPath, curX, curY );
break;
@@ -2674,7 +2675,8 @@
curX = ADD_INT32( curX, cf2_stack_popFixed( opStack ) );
- cf2_glyphpath_moveTo( &glyphPath, curX, curY );
+ if ( !decoder->flex_state )
+ cf2_glyphpath_moveTo( &glyphPath, curX, curY );
break;