summaryrefslogtreecommitdiff
path: root/builds
diff options
context:
space:
mode:
authorSuzuki, Toshiya (鈴木俊哉) <mpsuzuki@hiroshima-u.ac.jp>2008-02-21 18:46:07 +0000
committerSuzuki, Toshiya (鈴木俊哉) <mpsuzuki@hiroshima-u.ac.jp>2008-02-21 18:46:07 +0000
commit6cb2faa845f3841f2b5281b42e22e5a450cd9fd9 (patch)
tree60ed0f6c2a5f8970f70db22da296cd7cf5885d5e /builds
parent31093ccecd9015f238a089688ffeaf5c15192bc6 (diff)
* src/base/ftmac.c: Fix a bug of PostScript font name synthesis in parse_fond().
Diffstat (limited to 'builds')
-rw-r--r--builds/mac/ftmac.c9
1 files changed, 7 insertions, 2 deletions
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++ )