* src/sfnt/ttpost.c (load_format_*): Streamline frame reading.

This commit is contained in:
Alexei Podtelezhnikov 2023-04-02 22:00:59 -04:00
parent 311b78fa12
commit 340767bf85
1 changed files with 8 additions and 2 deletions

View File

@ -169,6 +169,7 @@
FT_UShort* glyph_indices = NULL; FT_UShort* glyph_indices = NULL;
FT_Byte** name_strings = NULL; FT_Byte** name_strings = NULL;
FT_Byte* q;
if ( (FT_ULong)num_glyphs * 2 > post_len ) if ( (FT_ULong)num_glyphs * 2 > post_len )
@ -182,9 +183,11 @@
FT_FRAME_ENTER( num_glyphs * 2 ) ) FT_FRAME_ENTER( num_glyphs * 2 ) )
goto Fail; goto Fail;
q = (FT_Byte*)stream->cursor;
for ( n = 0; n < num_glyphs; n++ ) for ( n = 0; n < num_glyphs; n++ )
{ {
FT_UShort idx = FT_GET_USHORT(); FT_UShort idx = FT_NEXT_USHORT( q );
if ( idx > num_names ) if ( idx > num_names )
@ -272,6 +275,7 @@
FT_UShort n; FT_UShort n;
FT_UShort* glyph_indices = NULL; FT_UShort* glyph_indices = NULL;
FT_Byte* q;
/* check the number of glyphs, including the theoretical limit */ /* check the number of glyphs, including the theoretical limit */
@ -287,9 +291,11 @@
FT_FRAME_ENTER( num_glyphs ) ) FT_FRAME_ENTER( num_glyphs ) )
goto Fail; goto Fail;
q = (FT_Byte*)stream->cursor;
for ( n = 0; n < num_glyphs; n++ ) for ( n = 0; n < num_glyphs; n++ )
{ {
FT_Int idx = n + FT_GET_CHAR(); FT_Int idx = n + FT_NEXT_CHAR( q );
if ( idx < 0 || idx > 257 ) if ( idx < 0 || idx > 257 )