summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWerner Lemberg <[email protected]>2014-12-11 13:39:39 +0100
committerWerner Lemberg <[email protected]>2014-12-11 13:39:39 +0100
commitc9ca6ffc9442b4b127f948e2d993454aa7791e59 (patch)
tree28ae97c61123a6f2ffa9b57bfb07816407f49087
parentb94381134efd41c6885d38e08d14106feec7284b (diff)
downloadfreetype2-c9ca6ffc9442b4b127f948e2d993454aa7791e59.tar.gz
* src/base/ftobjs.c (FT_Get_Glyph_Name): Fix off-by-one check.
Problem reported by Dennis Felsing <[email protected]>.
-rw-r--r--ChangeLog6
-rw-r--r--src/base/ftobjs.c6
2 files changed, 10 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 12fab2b..bbc0422 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2014-12-11 Werner Lemberg <[email protected]>
+ * src/base/ftobjs.c (FT_Get_Glyph_Name): Fix off-by-one check.
+
+ Problem reported by Dennis Felsing <[email protected]>.
+
+2014-12-11 Werner Lemberg <[email protected]>
+
* src/type42/t42parse.c (t42_parse_sfnts): Check `string_size'.
Problem reported by Dennis Felsing <[email protected]>.
diff --git a/src/base/ftobjs.c b/src/base/ftobjs.c
index c6e4b19..ee15a01 100644
--- a/src/base/ftobjs.c
+++ b/src/base/ftobjs.c
@@ -3648,8 +3648,10 @@
/* clean up buffer */
((FT_Byte*)buffer)[0] = '\0';
- if ( (FT_Long)glyph_index > face->num_glyphs ||
- !FT_HAS_GLYPH_NAMES( face ) )
+ if ( (FT_Long)glyph_index >= face->num_glyphs )
+ return FT_THROW( Invalid_Glyph_Index );
+
+ if ( !FT_HAS_GLYPH_NAMES( face ) )
return FT_THROW( Invalid_Argument );
FT_FACE_LOOKUP_SERVICE( face, service, GLYPH_DICT );