[type1, type42] Fix memory leaks (#45966).
* src/type1/t1load.c (parse_blend_axis_types): Handle multiple axis names. (parse_blend_design_map): Allow only a single design map. (parse_encoding): Handle multiple encoding vectors. * src/type42/t42parse.c (t42_parse_encoding): Handle multiple encoding vectors.
This commit is contained in:
parent
7f0f40116d
commit
19cb1127d4
12
ChangeLog
12
ChangeLog
|
@ -1,3 +1,15 @@
|
||||||
|
2015-09-15 Werner Lemberg <wl@gnu.org>
|
||||||
|
|
||||||
|
[type1, type42] Fix memory leaks (#45966).
|
||||||
|
|
||||||
|
* src/type1/t1load.c (parse_blend_axis_types): Handle multiple axis
|
||||||
|
names.
|
||||||
|
(parse_blend_design_map): Allow only a single design map.
|
||||||
|
(parse_encoding): Handle multiple encoding vectors.
|
||||||
|
|
||||||
|
* src/type42/t42parse.c (t42_parse_encoding): Handle multiple
|
||||||
|
encoding vectors.
|
||||||
|
|
||||||
2015-09-15 Werner Lemberg <wl@gnu.org>
|
2015-09-15 Werner Lemberg <wl@gnu.org>
|
||||||
|
|
||||||
[truetype] Fix integer type (#45965).
|
[truetype] Fix integer type (#45965).
|
||||||
|
|
|
@ -615,6 +615,15 @@
|
||||||
goto Exit;
|
goto Exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
name = (FT_Byte*)blend->axis_names[n];
|
||||||
|
if ( name )
|
||||||
|
{
|
||||||
|
FT_TRACE0(( "parse_blend_axis_types:"
|
||||||
|
" overwriting axis name `%s' with `%*.s'\n",
|
||||||
|
name, len, token->start ));
|
||||||
|
FT_FREE( name );
|
||||||
|
}
|
||||||
|
|
||||||
if ( FT_ALLOC( blend->axis_names[n], len + 1 ) )
|
if ( FT_ALLOC( blend->axis_names[n], len + 1 ) )
|
||||||
goto Exit;
|
goto Exit;
|
||||||
|
|
||||||
|
@ -787,6 +796,13 @@
|
||||||
goto Exit;
|
goto Exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( map->design_points )
|
||||||
|
{
|
||||||
|
FT_ERROR(( "parse_blend_design_map: duplicate table\n" ));
|
||||||
|
error = FT_THROW( Invalid_File_Format );
|
||||||
|
goto Exit;
|
||||||
|
}
|
||||||
|
|
||||||
/* allocate design map data */
|
/* allocate design map data */
|
||||||
if ( FT_NEW_ARRAY( map->design_points, num_points * 2 ) )
|
if ( FT_NEW_ARRAY( map->design_points, num_points * 2 ) )
|
||||||
goto Exit;
|
goto Exit;
|
||||||
|
@ -1205,6 +1221,14 @@
|
||||||
if ( parser->root.cursor >= limit )
|
if ( parser->root.cursor >= limit )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
/* PostScript happily allows overwriting of encoding arrays */
|
||||||
|
if ( encode->char_index )
|
||||||
|
{
|
||||||
|
FT_FREE( encode->char_index );
|
||||||
|
FT_FREE( encode->char_name );
|
||||||
|
T1_Release_Table( char_table );
|
||||||
|
}
|
||||||
|
|
||||||
/* we use a T1_Table to store our charnames */
|
/* we use a T1_Table to store our charnames */
|
||||||
loader->num_chars = encode->num_chars = count;
|
loader->num_chars = encode->num_chars = count;
|
||||||
if ( FT_NEW_ARRAY( encode->char_index, count ) ||
|
if ( FT_NEW_ARRAY( encode->char_index, count ) ||
|
||||||
|
|
|
@ -345,6 +345,14 @@
|
||||||
if ( parser->root.cursor >= limit )
|
if ( parser->root.cursor >= limit )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
/* PostScript happily allows overwriting of encoding arrays */
|
||||||
|
if ( encode->char_index )
|
||||||
|
{
|
||||||
|
FT_FREE( encode->char_index );
|
||||||
|
FT_FREE( encode->char_name );
|
||||||
|
T1_Release_Table( char_table );
|
||||||
|
}
|
||||||
|
|
||||||
/* we use a T1_Table to store our charnames */
|
/* we use a T1_Table to store our charnames */
|
||||||
loader->num_chars = encode->num_chars = count;
|
loader->num_chars = encode->num_chars = count;
|
||||||
if ( FT_NEW_ARRAY( encode->char_index, count ) ||
|
if ( FT_NEW_ARRAY( encode->char_index, count ) ||
|
||||||
|
|
Loading…
Reference in New Issue