freetype-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[freetype2] master b110acb: [sfnt, winfonts] Avoid memory leaks in case


From: Werner LEMBERG
Subject: [freetype2] master b110acb: [sfnt, winfonts] Avoid memory leaks in case of error (#56587).
Date: Fri, 12 Jul 2019 05:36:50 -0400 (EDT)

branch: master
commit b110acba9e6f7e40314f0da5d249cb3cb3beeab8
Author: Werner Lemberg <address@hidden>
Commit: Werner Lemberg <address@hidden>

    [sfnt, winfonts] Avoid memory leaks in case of error (#56587).
    
    * src/sfnt/sfwoff.c (woff_open_font): Call `FT_FRAME_EXIT' in case
    of error.
    
    * src/winfonts/winfnt.c (fnt_face_get_dll_font): Ditto.
---
 ChangeLog             |  9 +++++++++
 src/sfnt/sfwoff.c     | 10 +++++++---
 src/winfonts/winfnt.c |  6 +++++-
 3 files changed, 21 insertions(+), 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 27b4c0d..dfafdfb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2019-07-12  Werner Lemberg  <address@hidden>
+
+       [sfnt, winfonts] Avoid memory leaks in case of error (#56587).
+
+       * src/sfnt/sfwoff.c (woff_open_font): Call `FT_FRAME_EXIT' in case
+       of error.
+
+       * src/winfonts/winfnt.c (fnt_face_get_dll_font): Ditto.
+
 2019-07-12  Ben Wagner  <address@hidden>
 
        Properly handle phantom points for variation fonts (#56601).
diff --git a/src/sfnt/sfwoff.c b/src/sfnt/sfwoff.c
index ca4821a..c7eaca1 100644
--- a/src/sfnt/sfwoff.c
+++ b/src/sfnt/sfwoff.c
@@ -371,18 +371,18 @@
                                     sfnt + table->OrigOffset, &output_len,
                                     stream->cursor, table->CompLength );
         if ( error )
-          goto Exit;
+          goto Exit1;
         if ( output_len != table->OrigLength )
         {
           FT_ERROR(( "woff_font_open: compressed table length mismatch\n" ));
           error = FT_THROW( Invalid_Table );
-          goto Exit;
+          goto Exit1;
         }
 
 #else /* !FT_CONFIG_OPTION_USE_ZLIB */
 
         error = FT_THROW( Unimplemented_Feature );
-        goto Exit;
+        goto Exit1;
 
 #endif /* !FT_CONFIG_OPTION_USE_ZLIB */
       }
@@ -424,6 +424,10 @@
     }
 
     return error;
+
+  Exit1:
+    FT_FRAME_EXIT();
+    goto Exit;
   }
 
 
diff --git a/src/winfonts/winfnt.c b/src/winfonts/winfnt.c
index 2d771be..97eb6fc 100644
--- a/src/winfonts/winfnt.c
+++ b/src/winfonts/winfnt.c
@@ -331,7 +331,7 @@
         {
           FT_TRACE2(( "invalid alignment shift count for resource data\n" ));
           error = FT_THROW( Invalid_File_Format );
-          goto Exit;
+          goto Exit1;
         }
 
 
@@ -597,6 +597,10 @@
 
   Exit:
     return error;
+
+  Exit1:
+    FT_FRAME_EXIT();
+    goto Exit;
   }
 
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]