* src/smooth/ftsmooth.c (ft_smooth_render_generic): Add another overflow test for `width' and `height'.
This commit is contained in:
parent
e563216ddd
commit
a205b3ca85
|
@ -1,3 +1,10 @@
|
||||||
|
2010-08-10 Werner Lemberg <wl@gnu.org>
|
||||||
|
|
||||||
|
Try to fix Savannah bug #30717 (and probably #30719 too).
|
||||||
|
|
||||||
|
* src/smooth/ftsmooth.c (ft_smooth_render_generic): Add another
|
||||||
|
overflow test for `width' and `height'.
|
||||||
|
|
||||||
2010-08-06 Werner Lemberg <wl@gnu.org>
|
2010-08-06 Werner Lemberg <wl@gnu.org>
|
||||||
|
|
||||||
* Version 2.4.2 released.
|
* Version 2.4.2 released.
|
||||||
|
|
|
@ -140,8 +140,26 @@
|
||||||
cbox.xMax = FT_PIX_CEIL( cbox.xMax );
|
cbox.xMax = FT_PIX_CEIL( cbox.xMax );
|
||||||
cbox.yMax = FT_PIX_CEIL( cbox.yMax );
|
cbox.yMax = FT_PIX_CEIL( cbox.yMax );
|
||||||
|
|
||||||
width = (FT_UInt)( ( cbox.xMax - cbox.xMin ) >> 6 );
|
if ( cbox.xMin < 0 && cbox.xMax > FT_INT_MAX + cbox.xMin )
|
||||||
height = (FT_UInt)( ( cbox.yMax - cbox.yMin ) >> 6 );
|
{
|
||||||
|
FT_ERROR(( "ft_smooth_render_generic: glyph too large:"
|
||||||
|
" xMin = %d, xMax = %d\n",
|
||||||
|
cbox.xMin >> 6, cbox.xMax >> 6 ));
|
||||||
|
return Smooth_Err_Raster_Overflow;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
width = (FT_UInt)( ( cbox.xMax - cbox.xMin ) >> 6 );
|
||||||
|
|
||||||
|
if ( cbox.yMin < 0 && cbox.yMax > FT_INT_MAX + cbox.yMin )
|
||||||
|
{
|
||||||
|
FT_ERROR(( "ft_smooth_render_generic: glyph too large:"
|
||||||
|
" yMin = %d, yMax = %d\n",
|
||||||
|
cbox.yMin >> 6, cbox.yMax >> 6 ));
|
||||||
|
return Smooth_Err_Raster_Overflow;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
height = (FT_UInt)( ( cbox.yMax - cbox.yMin ) >> 6 );
|
||||||
|
|
||||||
bitmap = &slot->bitmap;
|
bitmap = &slot->bitmap;
|
||||||
memory = render->root.memory;
|
memory = render->root.memory;
|
||||||
|
|
||||||
|
@ -202,7 +220,7 @@
|
||||||
/* but we care realistic cases only. Always pitch <= width. */
|
/* but we care realistic cases only. Always pitch <= width. */
|
||||||
if ( width > 0x7FFFU || height > 0x7FFFU )
|
if ( width > 0x7FFFU || height > 0x7FFFU )
|
||||||
{
|
{
|
||||||
FT_ERROR(( "ft_smooth_render_generic: glyph too large: %d x %d\n",
|
FT_ERROR(( "ft_smooth_render_generic: glyph too large: %u x %u\n",
|
||||||
width, height ));
|
width, height ));
|
||||||
return Smooth_Err_Raster_Overflow;
|
return Smooth_Err_Raster_Overflow;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue