freetype-commit
[Top][All Lists]
Advanced

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

[freetype2] master 575b78d: [cff] Fix memory leak (#58610).


From: Werner LEMBERG
Subject: [freetype2] master 575b78d: [cff] Fix memory leak (#58610).
Date: Thu, 18 Jun 2020 21:54:44 -0400 (EDT)

branch: master
commit 575b78d9e3b9c701edb5087aa1c5f9c4031d3548
Author: Sebastian Rasmussen <sebras@gmail.com>
Commit: Werner Lemberg <wl@gnu.org>

    [cff] Fix memory leak (#58610).
    
    * src/cff/cffobjs.c (cff_size_init): When the call to
    `funcs->create' fails, make sure to free `internal'.
---
 ChangeLog         |  7 +++++++
 src/cff/cffobjs.c | 12 ++++++++----
 2 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index b80f16b..326dfce 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2020-06-19  Sebastian Rasmussen  <sebras@gmail.com>
+
+       [cff] Fix memory leak (#58610).
+
+       * src/cff/cffobjs.c (cff_size_init): When the call to
+       `funcs->create' fails, make sure to free `internal'.
+
 2020-06-19  Werner Lemberg  <wl@gnu.org>
 
        * src/cff/cffload.c (cff_index_get_pointers): Rename `t' to `tbl'.
diff --git a/src/cff/cffobjs.c b/src/cff/cffobjs.c
index 981bc70..252f58a 100644
--- a/src/cff/cffobjs.c
+++ b/src/cff/cffobjs.c
@@ -166,15 +166,16 @@
     FT_Error           error = FT_Err_Ok;
     PSH_Globals_Funcs  funcs = cff_size_get_globals_funcs( size );
 
+    FT_Memory     memory   = cffsize->face->memory;
+    CFF_Internal  internal = NULL;
+
 
     if ( funcs )
     {
-      CFF_Face      face     = (CFF_Face)cffsize->face;
-      CFF_Font      font     = (CFF_Font)face->extra.data;
-      CFF_Internal  internal = NULL;
+      CFF_Face  face = (CFF_Face)cffsize->face;
+      CFF_Font  font = (CFF_Font)face->extra.data;
 
       PS_PrivateRec  priv;
-      FT_Memory      memory = cffsize->face->memory;
 
       FT_UInt  i;
 
@@ -206,6 +207,9 @@
     size->strike_index = 0xFFFFFFFFUL;
 
   Exit:
+    if ( error )
+      FT_FREE( internal );
+
     return error;
   }
 



reply via email to

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