smooth: Exclude 16-bit system in invalid pitch/height check.

This commit is contained in:
suzuki toshiya 2009-08-01 00:35:40 +09:00
parent b16a942671
commit 057bc4c071
2 changed files with 13 additions and 0 deletions

View File

@ -1,5 +1,14 @@
2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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 <mpsuzuki@hiroshima-u.ac.jp>
cff: Type large constants > 0x7FFF as long for 16-bit systems.
* src/cff/cffload.c (cff_charset_load): Type large

View File

@ -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 )
@ -205,6 +207,8 @@
return Smooth_Err_Raster_Overflow;
}
#endif
bitmap->pixel_mode = FT_PIXEL_MODE_GRAY;
bitmap->num_grays = 256;
bitmap->width = width;