diff --git a/src/base/ftobjs.c b/src/base/ftobjs.c index e301f8f11a42af27e55de211e59aeb0f7873a2bb..3cb1d8ecfa405c2950b051ca323e058c5a4b8dd1 100644 --- a/src/base/ftobjs.c +++ b/src/base/ftobjs.c @@ -3244,6 +3244,9 @@ if ( !face ) return FT_THROW( Invalid_Face_Handle ); + if ( !face->size ) + return FT_THROW( Invalid_Size_Handle ); + if ( !req || req->width < 0 || req->height < 0 || req->type >= FT_SIZE_REQUEST_TYPE_MAX ) return FT_THROW( Invalid_Argument ); diff --git a/src/sfnt/sfobjs.c b/src/sfnt/sfobjs.c index 6edf3ae1ded66380794d1b0cba7fe956ec122e21..ab012827f35a0d8ed6e67825cfb5094eb49ff25d 100644 --- a/src/sfnt/sfobjs.c +++ b/src/sfnt/sfobjs.c @@ -528,7 +528,7 @@ face_index = FT_ABS( face_instance_index ) & 0xFFFF; /* value -(N+1) requests information on index N */ - if ( face_instance_index < 0 ) + if ( face_instance_index < 0 && face_index > 0) face_index--; if ( face_index >= face->ttc_header.count )