forked from minhngoc25a/freetype2
[cff] Fix value overflow.
* src/cff/cffparse.c (cff_parse_fixed_scaled): Implement it.
This commit is contained in:
parent
2df16761c9
commit
76accc184b
|
@ -1,3 +1,9 @@
|
||||||
|
2012-10-17 Bram Tassyns <BramT@enfocus.com>
|
||||||
|
|
||||||
|
[cff] Fix value overflow.
|
||||||
|
|
||||||
|
* src/cff/cffparse.c (cff_parse_fixed_scaled): Implement it.
|
||||||
|
|
||||||
2012-10-17 Werner Lemberg <wl@gnu.org>
|
2012-10-17 Werner Lemberg <wl@gnu.org>
|
||||||
|
|
||||||
[truetype] Fix Savannah bug #37572.
|
[truetype] Fix Savannah bug #37572.
|
||||||
|
|
|
@ -396,9 +396,20 @@
|
||||||
cff_parse_fixed_scaled( FT_Byte** d,
|
cff_parse_fixed_scaled( FT_Byte** d,
|
||||||
FT_Long scaling )
|
FT_Long scaling )
|
||||||
{
|
{
|
||||||
return **d == 30 ? cff_parse_real( d[0], d[1], scaling, NULL )
|
if ( **d == 30 )
|
||||||
: ( cff_parse_integer( d[0], d[1] ) *
|
return cff_parse_real( d[0], d[1], scaling, NULL );
|
||||||
power_tens[scaling] ) << 16;
|
else
|
||||||
|
{
|
||||||
|
FT_Long val = cff_parse_integer( d[0], d[1] ) * power_tens[scaling];
|
||||||
|
|
||||||
|
|
||||||
|
if ( val > 0x7FFF )
|
||||||
|
return 0x7FFFFFFFL;
|
||||||
|
else if ( val < -0x7FFF )
|
||||||
|
return -0x7FFFFFFFL;
|
||||||
|
|
||||||
|
return val << 16;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue