diff options
Diffstat (limited to 'src/base/ftoutln.c')
-rw-r--r-- | src/base/ftoutln.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/base/ftoutln.c b/src/base/ftoutln.c index 9935e058b..6009bc314 100644 --- a/src/base/ftoutln.c +++ b/src/base/ftoutln.c @@ -1060,6 +1060,13 @@ if ( cbox.xMin == cbox.xMax || cbox.yMin == cbox.yMax ) return FT_ORIENTATION_NONE; + /* Reject values larger than 32bit. */ + if ( (unsigned long)cbox.xMin > 0xFFFFFFFFUL || + (unsigned long)cbox.xMax > 0xFFFFFFFFUL || + (unsigned long)cbox.yMin > 0xFFFFFFFFUL || + (unsigned long)cbox.yMax > 0xFFFFFFFFUL ) + return FT_ORIENTATION_NONE; + xshift = FT_MSB( (FT_UInt32)( FT_ABS( cbox.xMax ) | FT_ABS( cbox.xMin ) ) ) - 14; xshift = FT_MAX( xshift, 0 ); |