diff options
Diffstat (limited to 'Build/source/libs/freetype2/freetype-src/src/cid/cidgload.c')
-rw-r--r-- | Build/source/libs/freetype2/freetype-src/src/cid/cidgload.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/Build/source/libs/freetype2/freetype-src/src/cid/cidgload.c b/Build/source/libs/freetype2/freetype-src/src/cid/cidgload.c index bd0a7e7fb10..54aa62f8104 100644 --- a/Build/source/libs/freetype2/freetype-src/src/cid/cidgload.c +++ b/Build/source/libs/freetype2/freetype-src/src/cid/cidgload.c @@ -4,7 +4,7 @@ * * CID-keyed Type1 Glyph Loader (body). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, @@ -85,10 +85,10 @@ if ( glyph_data.length != 0 ) { glyph_length = (FT_ULong)( glyph_data.length - cid->fd_bytes ); - - if ( !FT_QALLOC( charstring, glyph_length ) ) - FT_MEM_COPY( charstring, glyph_data.pointer + cid->fd_bytes, - glyph_length ); + (void)FT_ALLOC( charstring, glyph_length ); + if ( !error ) + ft_memcpy( charstring, glyph_data.pointer + cid->fd_bytes, + glyph_length ); } inc->funcs->free_glyph_data( inc->object, &glyph_data ); @@ -130,10 +130,11 @@ } glyph_length = off2 - off1; - - if ( glyph_length == 0 || - FT_QALLOC( charstring, glyph_length ) || - FT_STREAM_READ_AT( cid->data_offset + off1, + if ( glyph_length == 0 ) + goto Exit; + if ( FT_ALLOC( charstring, glyph_length ) ) + goto Exit; + if ( FT_STREAM_READ_AT( cid->data_offset + off1, charstring, glyph_length ) ) goto Exit; } |