ref: 2e58808d4850f2a2d4d126974bc7d6f83499ce90
parent: 1df35d94c79dea3f981bd2907dd979973c8199dc
author: Werner Lemberg <[email protected]>
date: Thu Oct 5 10:26:33 EDT 2017
Fix compiler warnings. * src/cff/cffdrivr.c (cff_ps_get_font_extra): Avoid code that relies on numeric overflow. Add cast. * src/smooth/ftsmooth.c (ft_smooth_render_generic): Fix variable types, add cast.
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2017-10-05 Werner Lemberg <[email protected]>
+
+ Fix compiler warnings.
+
+ * src/cff/cffdrivr.c (cff_ps_get_font_extra): Avoid code that relies
+ on numeric overflow.
+ Add cast.
+
+ * src/smooth/ftsmooth.c (ft_smooth_render_generic): Fix variable
+ types, add cast.
+
2017-10-04 John Tytgat <[email protected]>
[cff] Add support for `FSType'.
--- a/src/cff/cffdrivr.c
+++ b/src/cff/cffdrivr.c
@@ -515,7 +515,7 @@
if ( FT_ALLOC( font_extra, sizeof ( *font_extra ) ) )
goto Fail;
- font_extra->fs_type = 0u;
+ font_extra->fs_type = 0U;
embedded_postscript = cff_index_get_sid_string(
cff,
@@ -542,17 +542,15 @@
{
if ( *s >= '0' && *s <= '9' )
{
- FT_UShort prev_fs_type;
-
-
- prev_fs_type = font_extra->fs_type;
- font_extra->fs_type = 10 * font_extra->fs_type + *s - '0';
- if ( font_extra->fs_type < prev_fs_type )
+ if ( font_extra->fs_type >= ( FT_USHORT_MAX - 9 ) / 10 )
{
/* Overflow - ignore the FSType value. */
font_extra->fs_type = 0U;
break;
}
+
+ font_extra->fs_type *= 10;
+ font_extra->fs_type += (FT_UShort)( *s - '0' );
}
else if ( *s != ' ' && *s != '\n' && *s != '\r' )
{
--- a/src/smooth/ftsmooth.c
+++ b/src/smooth/ftsmooth.c
@@ -229,7 +229,7 @@
{
FT_Byte* line;
FT_Byte* temp;
- FT_Int i, j;
+ FT_UInt i, j;
unsigned int height = bitmap->rows;
unsigned int width = bitmap->width;
@@ -270,7 +270,7 @@
for ( i = 0; i < height; i++ )
{
- line = bitmap->buffer + i * pitch;
+ line = bitmap->buffer + i * (FT_ULong)pitch;
for ( j = 0; j < width; j++ )
{
temp[3 * j ] = line[j];