diff options
author | Werner Lemberg <wl@gnu.org> | 2016-04-24 08:14:07 +0200 |
---|---|---|
committer | Werner Lemberg <wl@gnu.org> | 2016-04-24 08:14:07 +0200 |
commit | 432e00db2e99d4dbb6533df72855718797cd93b2 (patch) | |
tree | ffe4cf9f85db97da032e57382bcff7c144de94a8 | |
parent | 80afef8bd6c2f04b4d10d695536482e379e98c22 (diff) | |
download | freetype2-432e00db2e99d4dbb6533df72855718797cd93b2.tar.gz |
[truetype] Fix deallocation in case of error (#47726).
* src/truetype/ttgload.c (load_truetype_glyph): Initialize fields in
`outline' that are going to be deallocated in case of error.
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | src/base/ftoutln.c | 2 | ||||
-rw-r--r-- | src/truetype/ttgload.c | 3 |
3 files changed, 11 insertions, 1 deletions
@@ -1,3 +1,10 @@ +2016-04-24 Werner Lemberg <wl@gnu.org> + + [truetype] Fix deallocation in case of error (#47726). + + * src/truetype/ttgload.c (load_truetype_glyph): Initialize fields in + `outline' that are going to be deallocated in case of error. + 2016-04-23 Werner Lemberg <wl@gnu.org> [autofit] Improve Georgian blue zone characters. diff --git a/src/base/ftoutln.c b/src/base/ftoutln.c index fa2d2cf65..fc28225c6 100644 --- a/src/base/ftoutln.c +++ b/src/base/ftoutln.c @@ -42,7 +42,7 @@ static - const FT_Outline null_outline = { 0, 0, 0, 0, 0, 0 }; + const FT_Outline null_outline = { 0, 0, NULL, NULL, NULL, 0 }; /* documentation is in ftoutln.h */ diff --git a/src/truetype/ttgload.c b/src/truetype/ttgload.c index d1cb3576d..c4038ee77 100644 --- a/src/truetype/ttgload.c +++ b/src/truetype/ttgload.c @@ -1704,6 +1704,9 @@ outline.n_points = (short)( gloader->current.num_subglyphs + 4 ); outline.n_contours = outline.n_points; + outline.tags = NULL; + outline.contours = NULL; + if ( FT_NEW_ARRAY( points, outline.n_points ) || FT_NEW_ARRAY( tags, outline.n_points ) || FT_NEW_ARRAY( contours, outline.n_points ) ) |