summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWerner Lemberg <wl@gnu.org>2018-07-16 05:45:45 +0200
committerWerner Lemberg <wl@gnu.org>2018-07-16 05:47:27 +0200
commit839cb404cf73f4410d58ebb3a99d16e08f4bdee7 (patch)
treefeb76d2826baae0610dbc2067147560b38eeacd2
parent9f15370e564eee41c83ff85bb66ead93517a641b (diff)
downloadfreetype2-839cb404cf73f4410d58ebb3a99d16e08f4bdee7.tar.gz
* src/truetype/ttgxvar.c (tt_set_mm_blend): Fix off-by-one error.
Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9412
-rw-r--r--ChangeLog8
-rw-r--r--src/truetype/ttgxvar.c7
2 files changed, 13 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 87f3d1795..9ce63689c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2018-07-16 Werner Lemberg <wl@gnu.org>
+
+ * src/truetype/ttgxvar.c (tt_set_mm_blend): Fix off-by-one error.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9412
+
2018-07-12 Werner Lemberg <wl@gnu.org>
* src/base/ftoutln.c (FT_Outline_Get_Orientation): Init `cbox'.
diff --git a/src/truetype/ttgxvar.c b/src/truetype/ttgxvar.c
index 0937301b0..d143fcefc 100644
--- a/src/truetype/ttgxvar.c
+++ b/src/truetype/ttgxvar.c
@@ -2533,11 +2533,14 @@
if ( FT_IS_NAMED_INSTANCE( FT_FACE( face ) ) )
{
- FT_UInt idx = (FT_UInt)face->root.face_index >> 16;
+ FT_UInt instance_index = (FT_UInt)face->root.face_index >> 16;
c = blend->normalizedcoords + i;
- n = blend->normalized_stylecoords + idx * mmvar->num_axis + i;
+ n = blend->normalized_stylecoords +
+ ( instance_index - 1 ) * mmvar->num_axis +
+ i;
+
for ( j = i; j < mmvar->num_axis; j++, n++, c++ )
if ( *c != *n )
have_diff = 1;