Commit 646cc8ef8d3956c46c245d1809e520803a1a41a0

Werner Lemberg 2023-02-02T10:38:18

* src/cff/cffgload.c (cff_slot_load): Avoid memory leak. Fixes issue #1204.

diff --git a/src/cff/cffgload.c b/src/cff/cffgload.c
index 487cc30..cfa0aaf 100644
--- a/src/cff/cffgload.c
+++ b/src/cff/cffgload.c
@@ -488,13 +488,14 @@
       decoder.builder.no_recurse =
         FT_BOOL( load_flags & FT_LOAD_NO_RECURSE );
 
-      /* now load the unscaled outline */
-      error = cff_get_glyph_data( face, glyph_index,
-                                  &charstring, &charstring_len );
+      /* this function also checks for a valid subfont index */
+      error = decoder_funcs->prepare( &decoder, size, glyph_index );
       if ( error )
         goto Glyph_Build_Finished;
 
-      error = decoder_funcs->prepare( &decoder, size, glyph_index );
+      /* now load the unscaled outline */
+      error = cff_get_glyph_data( face, glyph_index,
+                                  &charstring, &charstring_len );
       if ( error )
         goto Glyph_Build_Finished;