Commit fea68c680017286953caccd14ecb5188a732d0e6

David Turner 2000-05-26T06:40:49

fixed two minor bugs: - the glyph index was not checked in FT_Load_Glyph - the "type1" driver didn't read the FontBBox and FontMatrix correctly..

diff --git a/src/base/ftobjs.c b/src/base/ftobjs.c
index e3fadd3..dbaac4d 100644
--- a/src/base/ftobjs.c
+++ b/src/base/ftobjs.c
@@ -1813,6 +1813,9 @@
     if ( !face || !face->size || !face->glyph )
       return FT_Err_Invalid_Face_Handle;
 
+    if ( glyph_index >= face->num_glyphs )
+      return FT_Err_Invalid_Argument;
+      
     driver = face->driver;
 
     /* when the flag NO_RECURSE is set, we disable hinting and scaling */
diff --git a/src/type1/t1parse.c b/src/type1/t1parse.c
index 6f4ae78..6277510 100644
--- a/src/type1/t1parse.c
+++ b/src/type1/t1parse.c
@@ -512,7 +512,7 @@
     {
       /* get rid of '['/']', or '{'/'}' */
       T1_Byte*  base  = parser->tokenizer->base + token->start + 1;
-      T1_Byte*  limit = base + token->len - 1;
+      T1_Byte*  limit = base + token->len - 2;
       T1_Byte*  cur;
       T1_Byte*  start;
 
@@ -564,7 +564,7 @@
     {
       /* get rid of '[' and ']' */
       T1_Byte*  base  = parser->tokenizer->base + token->start + 1;
-      T1_Byte*  limit = base + token->len - 1;
+      T1_Byte*  limit = base + token->len - 2;
       T1_Byte*  cur;
       T1_Byte*  start;
       T1_Int    n;