summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWerner Lemberg <wl@gnu.org>2018-06-19 07:15:21 +0200
committerWerner Lemberg <wl@gnu.org>2018-06-19 07:15:21 +0200
commit7915fd51f123d0adbe6a0b9ad19eb941e1733c87 (patch)
tree028cf2f462d4ad2846750c950e41c9404e28ded5
parenta56e4bf7a243f46632e4e2ccf25d2f50ca132b23 (diff)
downloadfreetype2-7915fd51f123d0adbe6a0b9ad19eb941e1733c87.tar.gz
Doh. Don't use CPAL or COLR data if tables are missing.
Reported by Alexei. * src/sfnt/ttcolr.c (tt_face_get_colr_layer): Return immediately if `colr' is NULL. * src/sfnt/ttcpal.c (tt_face_palette_set): Return immediately, if `cpal' is NULL.
-rw-r--r--ChangeLog12
-rw-r--r--src/sfnt/ttcolr.c3
-rw-r--r--src/sfnt/ttcpal.c2
3 files changed, 16 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index ce05ec5a1..af02921e7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2018-06-19 Werner Lemberg <wl@gnu.org>
+
+ Doh. Don't use CPAL or COLR data if tables are missing.
+
+ Reported by Alexei.
+
+ * src/sfnt/ttcolr.c (tt_face_get_colr_layer): Return immediately if
+ `colr' is NULL.
+
+ * src/sfnt/ttcpal.c (tt_face_palette_set): Return immediately, if
+ `cpal' is NULL.
+
2018-06-17 Alexei Podtelezhnikov <apodtele@gmail.com>
[base] Introduce `FT_New_Glyph'.
diff --git a/src/sfnt/ttcolr.c b/src/sfnt/ttcolr.c
index 4fc430002..b12ebe213 100644
--- a/src/sfnt/ttcolr.c
+++ b/src/sfnt/ttcolr.c
@@ -220,6 +220,9 @@
FT_UInt glyph_index;
+ if ( !colr )
+ return 0;
+
if ( !iterator->p )
{
FT_ULong offset;
diff --git a/src/sfnt/ttcpal.c b/src/sfnt/ttcpal.c
index 6c6b06dad..fc78c67be 100644
--- a/src/sfnt/ttcpal.c
+++ b/src/sfnt/ttcpal.c
@@ -258,7 +258,7 @@
FT_ULong record_offset;
- if ( palette_index >= face->palette_data.num_palettes )
+ if ( !cpal || palette_index >= face->palette_data.num_palettes )
return FT_THROW( Invalid_Argument );
offset = cpal->color_indices + 2 * palette_index;