diff options
author | suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> | 2017-09-11 17:26:05 +0900 |
---|---|---|
committer | suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> | 2017-09-13 17:11:12 +0900 |
commit | 8f36537406fca7b1f2a492db707e0b58a4720e43 (patch) | |
tree | 12b455f398ab9020be2f6c5ff0a4baa85bf91e02 | |
parent | 58dd3a1e6e555a8b829d529fef23da0e051bea75 (diff) | |
download | freetype2-8f36537406fca7b1f2a492db707e0b58a4720e43.tar.gz |
use FT_UInt32 type to check UCS-2 codepoint overflow in cmap format 4 parser.
note: long type is too large for LP64 platforms.
-rw-r--r-- | src/sfnt/ttcmap.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/sfnt/ttcmap.c b/src/sfnt/ttcmap.c index b995e5c05..f8d5707c8 100644 --- a/src/sfnt/ttcmap.c +++ b/src/sfnt/ttcmap.c @@ -836,8 +836,8 @@ (FT_Int)end + delta >= 0 ) charcode = (FT_UInt)( -delta ); - else if ( (FT_Int)charcode + delta < 0x10000L && - (FT_Int)end + delta >= 0x10000L ) + else if ( (FT_Int32)charcode + delta < 0x10000L && + (FT_Int32)end + delta >= 0x10000L ) charcode = (FT_UInt)( 0x10000L - delta ); else @@ -1169,8 +1169,8 @@ (FT_Int)end + delta >= 0 ) charcode = (FT_UInt)( -delta ); - else if ( (FT_Int)charcode + delta < 0x10000L && - (FT_Int)end + delta >= 0x10000L ) + else if ( (FT_Int32)charcode + delta < 0x10000L && + (FT_Int32)end + delta >= 0x10000L ) charcode = (FT_UInt)( 0x10000L - delta ); else @@ -1407,8 +1407,8 @@ (FT_Int)end + delta >= 0 ) charcode = (FT_UInt)( -delta ); - else if ( (FT_Int)charcode + delta < 0x10000L && - (FT_Int)end + delta >= 0x10000L ) + else if ( (FT_Int32)charcode + delta < 0x10000L && + (FT_Int32)end + delta >= 0x10000L ) charcode = (FT_UInt)( 0x10000L - delta ); } } |