diff --git a/ChangeLog b/ChangeLog index 2dc6f6e8e..1a2df15fb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2014-09-08 Alexei Podtelezhnikov <apodtele@gmail.com> + + [base] Tighten the overflow check in `FT_MulDiv'. + + * src/base/ftcalc.c (FT_MulDiv) [!FT_LONG64]: Updated. + 2014-09-08 Alexei Podtelezhnikov <apodtele@gmail.com> Fix Savannah bug #43153. diff --git a/src/base/ftcalc.c b/src/base/ftcalc.c index 723712ead..c333b9b36 100644 --- a/src/base/ftcalc.c +++ b/src/base/ftcalc.c @@ -385,7 +385,7 @@ /* */ /* or, alternatively, */ /* */ - /* a + b <= 129895 - (c >> 17) . */ + /* a + b <= 129894 - (c >> 17) . */ /* */ /* FT_MulFix, on the other hand, is optimized for a small value of */ /* the first argument, when the second argument can be much larger. */ @@ -426,7 +426,7 @@ if ( c == 0 ) a = 0x7FFFFFFFL; - else if ( (FT_ULong)a + b <= 129895UL - ( c >> 17 ) ) + else if ( (FT_ULong)a + b <= 129894UL - ( c >> 17 ) ) a = ( (FT_ULong)a * b + ( c >> 1 ) ) / c; else