From 7915fd51f123d0adbe6a0b9ad19eb941e1733c87 Mon Sep 17 00:00:00 2001 From: Werner Lemberg Date: Tue, 19 Jun 2018 07:15:21 +0200 Subject: [PATCH] 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. --- ChangeLog | 12 ++++++++++++ src/sfnt/ttcolr.c | 3 +++ src/sfnt/ttcpal.c | 2 +- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index ce05ec5a1..af02921e7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2018-06-19 Werner Lemberg + + 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 [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;