diff options
author | eugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-07-10 23:57:17 +0000 |
---|---|---|
committer | eugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-07-10 23:57:17 +0000 |
commit | 37601a2f9e8dc1dd6de09bd21d19f3216dc9947d (patch) | |
tree | 23ce3e88b3cc398407c7d9d8a0f797d1f8737440 /libass | |
parent | ea15b11beedd02b1cd4079d37609aa215714a120 (diff) | |
download | libass-37601a2f9e8dc1dd6de09bd21d19f3216dc9947d.tar.bz2 libass-37601a2f9e8dc1dd6de09bd21d19f3216dc9947d.tar.xz |
Ignoring FT_Glyph_Stroke() errors can potentially lead to double free().
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19007 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libass')
-rw-r--r-- | libass/ass_render.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/libass/ass_render.c b/libass/ass_render.c index 17233948..a34b6538 100644 --- a/libass/ass_render.c +++ b/libass/ass_render.c @@ -1120,7 +1120,11 @@ static int get_glyph(int index, int symbol, glyph_info_t* info, FT_Vector* advan info->advance.y = info->glyph->advance.y >> 10; info->outline_glyph = info->glyph; - FT_Glyph_Stroke( &(info->outline_glyph), render_context.stroker, 0 ); // don't destroy original + error = FT_Glyph_Stroke( &(info->outline_glyph), render_context.stroker, 0 ); // don't destroy original + if (error) { + mp_msg(MSGT_GLOBAL, MSGL_WARN, "FT_Glyph_Stroke error %d \n", error); + FT_Glyph_Copy(info->glyph, &info->outline_glyph); + } info->bitmap = 0; // outline glyph |