From a5ce16f739ed6ea5bc70ac5aa4302a545ea78f2d Mon Sep 17 00:00:00 2001 From: Seungha Yang Date: Mon, 12 Dec 2016 10:43:43 +0900 Subject: [PATCH] ttmlrender: Fix segfault on _render_text_region() Fix invalid memory access https://bugzilla.gnome.org/show_bug.cgi?id=775965 --- ext/ttml/gstttmlrender.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/ext/ttml/gstttmlrender.c b/ext/ttml/gstttmlrender.c index 8956d7bdd7..2e3e257937 100644 --- a/ext/ttml/gstttmlrender.c +++ b/ext/ttml/gstttmlrender.c @@ -2151,8 +2151,14 @@ gst_ttml_render_render_text_region (GstTtmlRender * render, } tmp = region_image; - region_image = gst_ttml_render_rendered_image_combine (region_image, - blocks_image); + if (region_image || blocks_image) { + region_image = + gst_ttml_render_rendered_image_combine (region_image, blocks_image); + } else { + GST_CAT_DEBUG (ttmlrender_debug, "Nothing to render"); + return NULL; + } + if (tmp) gst_ttml_render_rendered_image_free (tmp); gst_ttml_render_rendered_image_free (blocks_image); @@ -2326,8 +2332,10 @@ wait_for_text_buf: g_assert (region != NULL); composition = gst_ttml_render_render_text_region (render, region, render->text_buffer); - render->compositions = g_list_append (render->compositions, - composition); + if (composition) { + render->compositions = g_list_append (render->compositions, + composition); + } } render->need_render = FALSE; }