From 6cb2faa845f3841f2b5281b42e22e5a450cd9fd9 Mon Sep 17 00:00:00 2001 From: "Suzuki, Toshiya (鈴木俊哉)" Date: Thu, 21 Feb 2008 18:46:07 +0000 Subject: * src/base/ftmac.c: Fix a bug of PostScript font name synthesis in parse_fond(). --- builds/mac/ftmac.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'builds') diff --git a/builds/mac/ftmac.c b/builds/mac/ftmac.c index b0b79ea1..e5e29644 100644 --- a/builds/mac/ftmac.c +++ b/builds/mac/ftmac.c @@ -727,6 +727,10 @@ typedef short ResourceIndex; assoc = (AsscEntry*)( fond_data + sizeof ( FamRec ) + 2 ); base_assoc = assoc; + /* the maximum faces in a FOND is 48, size of StyleTable.indexes[] */ + if ( 47 < face_index ) + return; + /* Let's do a little range checking before we get too excited here */ if ( face_index < count_faces_sfnt( fond_data ) ) { @@ -778,9 +782,10 @@ typedef short ResourceIndex; ft_memcpy(ps_name, names[0] + 1, ps_name_len); ps_name[ps_name_len] = 0; } - if ( style->indexes[0] > 1 ) + if ( style->indexes[face_index] > 1 && + style->indexes[face_index] <= FT_MIN( string_count, 64 ) ) { - unsigned char* suffixes = names[style->indexes[0] - 1]; + unsigned char* suffixes = names[style->indexes[face_index] - 1]; for ( i = 1; i <= suffixes[0]; i++ ) -- cgit v1.2.3