Commit 5a3490e054bda8a318ebde482c7fb30213cab3d9

Werner Lemberg 2017-03-31T09:35:58

* 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

diff --git a/ChangeLog b/ChangeLog
index df655af..f0e7a9b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2017-03-31  Werner Lemberg  <wl@gnu.org>
+
+	* 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  <wl@gnu.org>
 
 	* src/cff/cffparse.h (CFF2_DEFAULT_STACK): Set to 513 also.
diff --git a/src/cff/cffload.c b/src/cff/cffload.c
index 91e74f3..3beaeb1 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                   */