Commit 0690d3d7b59ccb54a9938ff99c8621350780fc6e

Alexei Podtelezhnikov 2012-11-15T20:50:59

[base] Fix integer overflows in dd5718c7d67a. * src/base/ftoutln.c (FT_Outline_EmboldenXY): Use FT_MulDiv.

diff --git a/ChangeLog b/ChangeLog
index c957398..f6b3d52 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2012-11-15  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+	[base] Fix integer overflows in dd5718c7d67a.
+
+	* src/base/ftoutln.c (FT_Outline_EmboldenXY): Use FT_MulDiv.
+
 2012-11-15  Werner Lemberg  <wl@gnu.org>
 
 	[autofit] Trace stem widths.
diff --git a/src/base/ftoutln.c b/src/base/ftoutln.c
index 1208752..c4fd266 100644
--- a/src/base/ftoutln.c
+++ b/src/base/ftoutln.c
@@ -968,13 +968,13 @@
           if ( orientation == FT_ORIENTATION_TRUETYPE )
             q = -q;
 
-          if ( xstrength * q < d * l )
+          if ( FT_MulDiv( xstrength, q, l ) < d )
             shift.x = FT_MulDiv( shift.x, xstrength, d );
           else
             shift.x = FT_MulDiv( shift.x, l, q );
 
           
-          if ( ystrength * q < d * l )
+          if ( FT_MulDiv( ystrength, q, l ) < d )
             shift.y = FT_MulDiv( shift.y, ystrength, d );
           else
             shift.y = FT_MulDiv( shift.y, l, q );