summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWerner Lemberg <wl@gnu.org>2016-04-24 08:14:07 +0200
committerWerner Lemberg <wl@gnu.org>2016-04-24 08:14:07 +0200
commit432e00db2e99d4dbb6533df72855718797cd93b2 (patch)
treeffe4cf9f85db97da032e57382bcff7c144de94a8
parent80afef8bd6c2f04b4d10d695536482e379e98c22 (diff)
downloadfreetype2-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--ChangeLog7
-rw-r--r--src/base/ftoutln.c2
-rw-r--r--src/truetype/ttgload.c3
3 files changed, 11 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 43ba8c6a7..2db583daf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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 ) )