summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsuzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>2017-09-11 17:26:05 +0900
committersuzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>2017-09-13 17:11:12 +0900
commit8f36537406fca7b1f2a492db707e0b58a4720e43 (patch)
tree12b455f398ab9020be2f6c5ff0a4baa85bf91e02
parent58dd3a1e6e555a8b829d529fef23da0e051bea75 (diff)
downloadfreetype2-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.c12
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 );
}
}