cache: Check 32-bit glyph index on 16-bit systems.
This commit is contained in:
parent
b566d42aa0
commit
2a5831ec07
|
@ -1,3 +1,11 @@
|
|||
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
|
||||
|
||||
cache: Check 32-bit glyph index on 16-bit systems.
|
||||
|
||||
* src/cache/ftcbasic.c (ftc_basic_family_get_count):
|
||||
Check overflow caused by the face including large
|
||||
number of glyphs > 64k.
|
||||
|
||||
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
|
||||
|
||||
cache: Fix some data types mismatching with their sources.
|
||||
|
|
|
@ -25,6 +25,8 @@
|
|||
#include "ftccback.h"
|
||||
#include "ftcerror.h"
|
||||
|
||||
#define FT_COMPONENT trace_cache
|
||||
|
||||
|
||||
#ifdef FT_CONFIG_OPTION_OLD_INTERNALS
|
||||
|
||||
|
@ -139,8 +141,15 @@
|
|||
|
||||
error = FTC_Manager_LookupFace( manager, family->attrs.scaler.face_id,
|
||||
&face );
|
||||
|
||||
if ( (FT_ULong)face->num_glyphs > FT_UINT_MAX || 0 > face->num_glyphs )
|
||||
{
|
||||
FT_TRACE1(( "ftc_basic_family_get_count: too large number of glyphs " ));
|
||||
FT_TRACE1(( "in this face, truncated\n", face->num_glyphs ));
|
||||
}
|
||||
|
||||
if ( !error )
|
||||
result = face->num_glyphs;
|
||||
result = (FT_UInt)face->num_glyphs;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue