ref: 057bc4c071b2e4a611e86786551c473b70884434
parent: b16a942671c80f0cbb2cdca96a4a583dabcdaf73
author: suzuki toshiya <[email protected]>
date: Fri Jul 31 20:35:40 EDT 2009
smooth: Exclude 16-bit system in invalid pitch/height check.
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
2009-07-31 suzuki toshiya <[email protected]>
+ smooth: Exclude 16-bit system in invalid pitch/height check.
+
+ * src/smooth/ftsmooth.c (ft_smooth_render_generic):
+ pitch and height are typed as FT_UInt but checked to fit
+ 16-bit range, to avoid the overflows. On 16-bit system,
+ this checking inserts a conditional that never occurs.
+
+2009-07-03 suzuki toshiya <[email protected]>
+
cff: Type large constants > 0x7FFF as long for 16-bit systems.
* src/cff/cffload.c (cff_charset_load): Type large
--- a/src/smooth/ftsmooth.c
+++ b/src/smooth/ftsmooth.c
@@ -196,6 +196,8 @@
#endif
+#if FT_UINT_MAX > 0xFFFFU
+
/* Required check is ( pitch * height < FT_ULONG_MAX ), */
/* but we care realistic cases only. Always pitch <= width. */
if ( width > 0xFFFFU || height > 0xFFFFU )
@@ -204,6 +206,8 @@
width, height ));
return Smooth_Err_Raster_Overflow;
}
+
+#endif
bitmap->pixel_mode = FT_PIXEL_MODE_GRAY;
bitmap->num_grays = 256;