shithub: freetype+ttf2subf

Download patch

ref: dfa4568432c28a75a91f2b94362ab1190ab2d91b
parent: 726a4fa6f1d8785571d2c043b38a9d6024ee8ab9
author: Tom Kacvinsky <[email protected]>
date: Sun Oct 21 16:26:59 EDT 2001

In function CFF_Done_Font, make sure that subfonts are freed only if
we are working with a CID keyed CFF font.  This is to avoid freeing a
variable that might not have been allocated.

git/fs: mount .git/fs: mount/attach disallowed
--- a/src/cff/cffload.c
+++ b/src/cff/cffload.c
@@ -2242,11 +2242,14 @@
     cff_done_index( &font->name_index );
     cff_done_index( &font->charstrings_index );
 
-    /* release font dictionaries */
-    for ( index = 0; index < font->num_subfonts; index++ )
-      CFF_Done_SubFont( memory, font->subfonts[index] );
+    /* release font dictionaries, but only if working with a CID keyed CFF font */
+    if ( font->num_subfonts > 0 )
+    {
+      for ( index = 0; index < font->num_subfonts; index++ )
+        CFF_Done_SubFont( memory, font->subfonts[index] );
 
-    FREE( font->subfonts );
+      FREE( font->subfonts );
+    }
 
     CFF_Done_Encoding( &font->encoding, font->stream );
     CFF_Done_Charset( &font->charset, font->stream );