ref: ef070d458bfe965116a36734dfc6b639644c6855
parent: bc12d9e9ac7c4960ad4539a48b261193a06fad88
author: Alexei Podtelezhnikov <[email protected]>
date: Mon Sep 15 18:06:19 EDT 2014
[base] Tighten the overflow check in `FT_MulDiv'. * src/base/ftcalc.c (FT_MulDiv) [!FT_LONG64]: Updated.
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2014-09-08 Alexei Podtelezhnikov <[email protected]>
+ [base] Tighten the overflow check in `FT_MulDiv'.
+
+ * src/base/ftcalc.c (FT_MulDiv) [!FT_LONG64]: Updated.
+
+2014-09-08 Alexei Podtelezhnikov <[email protected]>
+
Fix Savannah bug #43153.
* src/psaux/psconv.c (PS_Conv_ToFixed): Add protection against
--- 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