From 3ac37bbe67e44fd73aa4499c8041f7a97ed8d1fb Mon Sep 17 00:00:00 2001 From: Edward Hervey Date: Wed, 30 May 2018 11:39:40 +0200 Subject: [PATCH] subparse: Don't read beyond array If num_open_tags is 0, we shouldn't try to get the "last" open tag since there isn't any. --- gst/subparse/gstsubparse.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gst/subparse/gstsubparse.c b/gst/subparse/gstsubparse.c index 58d7606d6d..c527a94dec 100644 --- a/gst/subparse/gstsubparse.c +++ b/gst/subparse/gstsubparse.c @@ -816,7 +816,9 @@ subrip_fix_up_markup (gchar ** p_txt, gconstpointer allowed_tags_ptr) if (*next_tag == '<' && *(next_tag + 1) == '/') { end_tag = strchr (cur, '>'); if (end_tag) { - const gchar *last = g_ptr_array_index (open_tags, num_open_tags - 1); + const gchar *last = NULL; + if (num_open_tags > 0) + last = g_ptr_array_index (open_tags, num_open_tags - 1); if (num_open_tags == 0 || g_ascii_strncasecmp (end_tag - 1, last, strlen (last))) { GST_LOG ("broken input, closing tag '%s' is not open", end_tag - 1);