[pcf] Fix integer overflows (#45985).

* src/pcf/pcfread.c (pcf_load_font): Use FT_MulDiv.
This commit is contained in:
Werner Lemberg 2015-09-17 16:22:40 +02:00
parent 9db9adda0f
commit c838c4f7b5
2 changed files with 11 additions and 3 deletions

View File

@ -1,3 +1,9 @@
2015-09-17 Werner Lemberg <wl@gnu.org>
[pcf] Fix integer overflows (#45985).
* src/pcf/pcfread.c (pcf_load_font): Use FT_MulDiv.
2015-09-17 Werner Lemberg <wl@gnu.org>
[pcf] Use FT_ABS for some property values (#45893).

View File

@ -1290,7 +1290,7 @@ THE SOFTWARE.
bsize->width = (FT_Short)( ( FT_ABS( prop->value.l ) + 5 ) / 10 );
}
else
bsize->width = (FT_Short)( bsize->height * 2 / 3 );
bsize->width = (FT_Short)FT_MulDiv( bsize->height, 2, 3 );
prop = pcf_find_property( face, "POINT_SIZE" );
if ( prop )
@ -1339,10 +1339,12 @@ THE SOFTWARE.
{
bsize->y_ppem = bsize->size;
if ( resolution_y )
bsize->y_ppem = bsize->y_ppem * resolution_y / 72;
bsize->y_ppem = FT_MulDiv( bsize->y_ppem, resolution_y, 72 );
}
if ( resolution_x && resolution_y )
bsize->x_ppem = bsize->y_ppem * resolution_x / resolution_y;
bsize->x_ppem = FT_MulDiv( bsize->y_ppem,
resolution_x,
resolution_y );
else
bsize->x_ppem = bsize->y_ppem;
}