diff --git a/ChangeLog b/ChangeLog index 68940a2a1..d26fa3f46 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2016-12-29 Werner Lemberg + + * src/truetype/ttgxvar.c (TT_Get_MM_Var): Check axis data. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=348 + 2016-12-29 Werner Lemberg [truetype] Tracing fixes. diff --git a/src/truetype/ttgxvar.c b/src/truetype/ttgxvar.c index ad662a4b2..cdf41834c 100644 --- a/src/truetype/ttgxvar.c +++ b/src/truetype/ttgxvar.c @@ -1435,6 +1435,17 @@ a->name[3] = (FT_String)( ( a->tag ) & 0xFF ); a->name[4] = '\0'; + if ( a->minimum > a->def || + a->def > a->maximum ) + { + FT_TRACE2(( "TT_Get_MM_Var:" + " invalid \"%s\" axis record; disabling\n", + a->name )); + + a->minimum = a->def; + a->maximum = a->def; + } + FT_TRACE5(( " \"%s\": minimum=%.5f, default=%.5f, maximum=%.5f\n", a->name, a->minimum / 65536.0,