diff --git a/ChangeLog b/ChangeLog index 5c9e7eb9f..2cf618d47 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2012-12-15 Werner Lemberg + + [bdf] Fix Savannah bug #37906. + + * src/bdf/bdflib.c (_bdf_parse_glyphs): Use correct array size for + checking `glyph_enc'. + 2012-12-15 Werner Lemberg [bdf] Fix Savannah bug #37905. diff --git a/src/bdf/bdflib.c b/src/bdf/bdflib.c index 8d7f9a074..f9c06ca13 100644 --- a/src/bdf/bdflib.c +++ b/src/bdf/bdflib.c @@ -1628,8 +1628,9 @@ /* Check that the encoding is in the Unicode range because */ /* otherwise p->have (a bitmap with static size) overflows. */ - if ( p->glyph_enc > 0 && - (size_t)p->glyph_enc >= sizeof ( p->have ) * 8 ) + if ( p->glyph_enc > 0 && + (size_t)p->glyph_enc >= sizeof ( p->have ) / + sizeof ( unsigned long ) * 32 ) { FT_ERROR(( "_bdf_parse_glyphs: " ERRMSG5, lineno, "ENCODING" )); error = BDF_Err_Invalid_File_Format;