[vlc-commits] freetype: fix memory leaks.

Rémi Duraffort git at videolan.org
Sun May 1 14:23:34 CEST 2011


vlc | branch: master | Rémi Duraffort <ivoire at videolan.org> | Sun May  1 14:02:03 2011 +0200| [5294faf67be653ba05ad95a6869dafa51d662235] | committer: Rémi Duraffort

freetype: fix memory leaks.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=5294faf67be653ba05ad95a6869dafa51d662235
---

 modules/misc/text_renderer/freetype.c |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/modules/misc/text_renderer/freetype.c b/modules/misc/text_renderer/freetype.c
index 7721ab6..ae450c0 100644
--- a/modules/misc/text_renderer/freetype.c
+++ b/modules/misc/text_renderer/freetype.c
@@ -384,7 +384,7 @@ static int Create( vlc_object_t *p_this )
 
     /* If nothing is found, use the default family */
     if( !psz_fontfile )
-        psz_fontfile = psz_fontfamily;
+        psz_fontfile = strdup( psz_fontfamily );
 
 #else /* !HAVE_STYLES */
     /* Use the default file */
@@ -414,6 +414,9 @@ static int Create( vlc_object_t *p_this )
                  psz_fontfile ? psz_fontfile : "(null)" );
         goto error;
     }
+#ifdef HAVE_STYLES
+    free( psz_fontfile );
+#endif
 
     i_error = FT_Select_Charmap( p_sys->p_face, ft_encoding_unicode );
     if( i_error )
@@ -444,6 +447,9 @@ static int Create( vlc_object_t *p_this )
 error:
     if( p_sys->p_face ) FT_Done_Face( p_sys->p_face );
     if( p_sys->p_library ) FT_Done_FreeType( p_sys->p_library );
+#ifdef HAVE_STYLES
+    free( psz_fontfile );
+#endif
     free( psz_fontfamily );
     free( p_sys );
     return VLC_EGENERIC;
@@ -2371,7 +2377,10 @@ static char* FontConfig_Select( FcConfig* config, const char* family,
     {
         char *psz_fontsize;
         if( asprintf( &psz_fontsize, "%d", i_size ) != -1 )
+        {
             FcPatternAddString( pat, FC_SIZE, (const FcChar8 *)psz_fontsize );
+            free( psz_fontsize );
+        }
     }
 
     /* */



More information about the vlc-commits mailing list