diff options
author | Alexei Podtelezhnikov <apodtele@gmail.com> | 2021-10-07 22:43:12 -0400 |
---|---|---|
committer | Alexei Podtelezhnikov <apodtele@gmail.com> | 2021-10-07 22:43:12 -0400 |
commit | 0313a11c4c2d1a6688facccffd18e0473dc6953e (patch) | |
tree | e39bf78504bcef6b578c3bbf080581b31b44932b | |
parent | 22befeef82ff8ab7100c0e40f93f748597674b31 (diff) | |
download | freetype2-0313a11c4c2d1a6688facccffd18e0473dc6953e.tar.gz |
* src/cid/cidgload.c (cid_load_glyph): Fortify incremental loading.
-rw-r--r-- | src/cid/cidgload.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/src/cid/cidgload.c b/src/cid/cidgload.c index e3e6832f6..bf78957ee 100644 --- a/src/cid/cidgload.c +++ b/src/cid/cidgload.c @@ -76,20 +76,17 @@ error = inc->funcs->get_glyph_data( inc->object, glyph_index, &glyph_data ); - if ( error ) + if ( error || glyph_data.length < cid->fd_bytes ) goto Exit; p = (FT_Byte*)glyph_data.pointer; fd_select = cid_get_offset( &p, cid->fd_bytes ); - if ( glyph_data.length != 0 ) - { - glyph_length = glyph_data.length - cid->fd_bytes; + glyph_length = glyph_data.length - cid->fd_bytes; - if ( !FT_QALLOC( charstring, glyph_length ) ) - FT_MEM_COPY( charstring, glyph_data.pointer + cid->fd_bytes, - glyph_length ); - } + if ( !FT_QALLOC( charstring, glyph_length ) ) + FT_MEM_COPY( charstring, glyph_data.pointer + cid->fd_bytes, + glyph_length ); inc->funcs->free_glyph_data( inc->object, &glyph_data ); |