[cff] Better check of number of blends.
* src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdBLEND>, src/cff/cffparse.c (cff_parse_blend): Compare number of blends with stack size.
This commit is contained in:
parent
48fd5bb2b6
commit
c4cd34a9e0
|
@ -1,3 +1,11 @@
|
|||
2016-12-28 Werner Lemberg <wl@gnu.org>
|
||||
|
||||
[cff] Better check of number of blends.
|
||||
|
||||
* src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdBLEND>,
|
||||
src/cff/cffparse.c (cff_parse_blend): Compare number of blends with
|
||||
stack size.
|
||||
|
||||
2016-12-27 Werner Lemberg <wl@gnu.org>
|
||||
|
||||
Documentation updates.
|
||||
|
|
|
@ -693,12 +693,13 @@
|
|||
}
|
||||
|
||||
/* do the blend */
|
||||
numBlends = (FT_UInt)cf2_stack_popInt( opStack );
|
||||
if ( numBlends > stackSize )
|
||||
{
|
||||
FT_Int temp = cf2_stack_popInt( opStack );
|
||||
|
||||
|
||||
numBlends = temp > 0 ? (FT_UInt)temp : 0;
|
||||
lastError = FT_THROW( Invalid_Glyph_Format );
|
||||
goto exit;
|
||||
}
|
||||
|
||||
cf2_doBlend( &font->blend, opStack, numBlends );
|
||||
|
||||
font->blend.usedBV = TRUE;
|
||||
|
|
|
@ -907,6 +907,12 @@
|
|||
}
|
||||
|
||||
numBlends = (FT_UInt)cff_parse_num( parser, parser->top - 1 );
|
||||
if ( numBlends > parser->stackSize )
|
||||
{
|
||||
FT_ERROR(( "cff_parse_blend: Invalid number of blends\n" ));
|
||||
error = FT_THROW( Invalid_File_Format );
|
||||
goto Exit;
|
||||
}
|
||||
|
||||
FT_TRACE4(( " %d values blended\n", numBlends ));
|
||||
|
||||
|
|
Loading…
Reference in New Issue