summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexei Podtelezhnikov <apodtele@gmail.com>2021-10-07 22:43:12 -0400
committerAlexei Podtelezhnikov <apodtele@gmail.com>2021-10-07 22:43:12 -0400
commit0313a11c4c2d1a6688facccffd18e0473dc6953e (patch)
treee39bf78504bcef6b578c3bbf080581b31b44932b
parent22befeef82ff8ab7100c0e40f93f748597674b31 (diff)
downloadfreetype2-0313a11c4c2d1a6688facccffd18e0473dc6953e.tar.gz
* src/cid/cidgload.c (cid_load_glyph): Fortify incremental loading.
-rw-r--r--src/cid/cidgload.c13
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 );