]> git.sesse.net Git - vlc/commitdiff
freetype: more fontconfig error-checking
authorIlkka Ollakka <ileoo@videolan.org>
Wed, 29 Jul 2009 09:27:05 +0000 (12:27 +0300)
committerIlkka Ollakka <ileoo@videolan.org>
Wed, 29 Jul 2009 09:27:05 +0000 (12:27 +0300)
modules/misc/freetype.c

index a0c3a93fdc75c301e81467fab424d14a2663849b..f77cdc4442fab9bffadb26a69fe8985382d464be 100644 (file)
@@ -348,14 +348,19 @@ static int Create( vlc_object_t *p_this )
     char *psz_fontsize;
     if( asprintf( &psz_fontsize, "%d", p_sys->i_default_font_size ) == -1 )
         goto error;
+
     fontpattern = FcPatternCreate();
+
+    if( !fontpattern )
+        goto error;
+
     FcPatternAddString( fontpattern, FC_FAMILY, psz_fontfamily);
     FcPatternAddString( fontpattern, FC_SIZE, psz_fontsize );
+    free( psz_fontsize );
 
     if( FcConfigSubstitute( NULL, fontpattern, FcMatchPattern ) == FcFalse )
     {
         FcPatternDestroy( fontpattern );
-        free( psz_fontsize );
         goto error;
     }
     FcDefaultSubstitute( fontpattern );
@@ -363,15 +368,12 @@ static int Create( vlc_object_t *p_this )
     fontmatch = FcFontMatch( NULL, fontpattern, &fontresult );
     if( fontresult == FcResultNoMatch )
     {
-        free( psz_fontsize );
         FcPatternDestroy( fontpattern );
-        FcPatternDestroy( fontmatch );
         goto error;
     }
 
     FcPatternGetString( fontmatch, FC_FILE, 0, (FcChar8 **)&psz_fontfile);
     FcPatternGetInteger( fontmatch, FC_INDEX, 0, &fontindex );
-    free( psz_fontsize );
     if( !psz_fontfile )
     {
         FcPatternDestroy( fontpattern );