* src/type1/t1afm.c (T1_Read_Metrics): Fix memory leak (#46229).

This commit is contained in:
Werner Lemberg 2015-10-20 06:57:28 +02:00
parent ba8a528b19
commit 3c582060b2
2 changed files with 16 additions and 4 deletions

View File

@ -1,4 +1,8 @@
2015-10-18 Bungeman <bungeman@gmail.com>
2015-10-20 Werner Lemberg <wl@gnu.org>
* src/type1/t1afm.c (T1_Read_Metrics): Fix memory leak (#46229).
2015-10-19 Bungeman <bungeman@gmail.com>
[cid] Better handle invalid glyph stream offsets (#46221).

View File

@ -239,9 +239,17 @@
AFM_ParserRec parser;
AFM_FontInfo fi = NULL;
FT_Error error = FT_ERR( Unknown_File_Format );
T1_Font t1_font = &( (T1_Face)t1_face )->type1;
T1_Face face = (T1_Face)t1_face;
T1_Font t1_font = &face->type1;
if ( face->afm_data )
{
FT_TRACE1(( "T1_Read_Metrics:"
" Freeing previously attached metrics data.\n" ));
T1_Done_Metrics( memory, (AFM_FontInfo)face->afm_data );
}
if ( FT_NEW( fi ) ||
FT_FRAME_ENTER( stream->size ) )
goto Exit;
@ -250,7 +258,7 @@
fi->Ascender = t1_font->font_bbox.yMax;
fi->Descender = t1_font->font_bbox.yMin;
psaux = (PSAux_Service)( (T1_Face)t1_face )->psaux;
psaux = (PSAux_Service)face->psaux;
if ( psaux->afm_parser_funcs )
{
error = psaux->afm_parser_funcs->init( &parser,
@ -298,7 +306,7 @@
if ( fi->NumKernPair )
{
t1_face->face_flags |= FT_FACE_FLAG_KERNING;
( (T1_Face)t1_face )->afm_data = fi;
face->afm_data = fi;
fi = NULL;
}
}