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;