shithub: freetype+ttf2subf

Download patch

ref: 08e89b734c73fe6caa7141626637afa92c75b443
parent: 3a5e507838a6e591f867f47b3b88c149ddc01ddd
author: Alexei Podtelezhnikov <[email protected]>
date: Tue Feb 16 17:32:13 EST 2016

[smooth] Fix integer overflow (#47114).

* src/smooth/ftgrays.c (TArea): Make it unconditionally `long'.

git/fs: mount .git/fs: mount/attach disallowed
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2016-02-16  Alexei Podtelezhnikov  <[email protected]>
+
+	[smooth] Fix integer overflow (#47114).
+
+	* src/smooth/ftgrays.c (TArea): Make it unconditionally `long'.
+
 2016-02-15  Werner Lemberg  <[email protected]>
 
 	* src/cff/cffparse.c (cff_parse_multiple_master): Improve tracing.
--- a/src/smooth/ftgrays.c
+++ b/src/smooth/ftgrays.c
@@ -388,25 +388,7 @@
 
   typedef long  TCoord;   /* integer scanline/pixel coordinate */
   typedef long  TPos;     /* sub-pixel coordinate              */
-
-  /* determine the type used to store cell areas.  This normally takes at */
-  /* least PIXEL_BITS*2 + 1 bits.  On 16-bit systems, we need to use      */
-  /* `long' instead of `int', otherwise bad things happen                 */
-
-#if PIXEL_BITS <= 7
-
-  typedef int  TArea;
-
-#else /* PIXEL_BITS >= 8 */
-
-  /* approximately determine the size of integers using an ANSI-C header */
-#if FT_UINT_MAX == 0xFFFFU
-  typedef long  TArea;
-#else
-  typedef int   TArea;
-#endif
-
-#endif /* PIXEL_BITS >= 8 */
+  typedef long  TArea;    /* cell areas, coordinate products   */
 
 
   /* maximum number of gray spans in a call to the span callback */