From 5a3490e054bda8a318ebde482c7fb30213cab3d9 Mon Sep 17 00:00:00 2001 From: Werner Lemberg Date: Fri, 31 Mar 2017 09:35:58 +0200 Subject: [PATCH] * src/cff/cffload.c (cff_font_load): Improve fix from 2017-01-04. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Allow CFFs containing a single font to have an empty font name. Problem reported by 張俊芝 <418092625@qq.com> in http://lists.nongnu.org/archive/html/freetype-devel/2017-03/msg00074.html --- ChangeLog | 10 ++++++++++ src/cff/cffload.c | 6 ++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index df655affb..f0e7a9b23 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2017-03-31 Werner Lemberg + + * src/cff/cffload.c (cff_font_load): Improve fix from 2017-01-04. + + Allow CFFs containing a single font to have an empty font name. + + Problem reported by 張俊芝 <418092625@qq.com> in + + http://lists.nongnu.org/archive/html/freetype-devel/2017-03/msg00074.html + 2017-03-30 Werner Lemberg * src/cff/cffparse.h (CFF2_DEFAULT_STACK): Set to 513 also. diff --git a/src/cff/cffload.c b/src/cff/cffload.c index 91e74f32c..3beaeb1c8 100644 --- a/src/cff/cffload.c +++ b/src/cff/cffload.c @@ -2280,8 +2280,10 @@ goto Exit; } - /* font names must not be empty */ - if ( font->name_index.data_size < font->name_index.count ) + /* if we have an empty font name, */ + /* it must be the only font in the CFF */ + if ( font->name_index.count > 1 && + font->name_index.data_size < font->name_index.count ) { /* for pure CFFs, we still haven't checked enough bytes */ /* to be sure that it is a CFF at all */