diff options
| author | Werner Lemberg <wl@gnu.org> | 2014-12-11 13:39:39 +0100 |
|---|---|---|
| committer | Werner Lemberg <wl@gnu.org> | 2014-12-11 13:39:39 +0100 |
| commit | c9ca6ffc9442b4b127f948e2d993454aa7791e59 (patch) | |
| tree | 28ae97c61123a6f2ffa9b57bfb07816407f49087 | |
| parent | b94381134efd41c6885d38e08d14106feec7284b (diff) | |
| download | freetype2-c9ca6ffc9442b4b127f948e2d993454aa7791e59.tar.gz | |
* src/base/ftobjs.c (FT_Get_Glyph_Name): Fix off-by-one check.
Problem reported by Dennis Felsing <dennis@felsin9.de>.
| -rw-r--r-- | ChangeLog | 6 | ||||
| -rw-r--r-- | src/base/ftobjs.c | 6 |
2 files changed, 10 insertions, 2 deletions
@@ -1,5 +1,11 @@ 2014-12-11 Werner Lemberg <wl@gnu.org> + * src/base/ftobjs.c (FT_Get_Glyph_Name): Fix off-by-one check. + + Problem reported by Dennis Felsing <dennis@felsin9.de>. + +2014-12-11 Werner Lemberg <wl@gnu.org> + * src/type42/t42parse.c (t42_parse_sfnts): Check `string_size'. Problem reported by Dennis Felsing <dennis@felsin9.de>. 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 ); |
