demux/ttml: fix crash on unexpected data
authorFilip Roséen <filip@atch.se>
Mon, 19 Sep 2016 21:53:38 +0000 (23:53 +0200)
committerHugo Beauzée-Luyssen <hugo@beauzee.fr>
Mon, 19 Sep 2016 22:40:47 +0000 (00:40 +0200)
The previous implementation would crash if no relevant element was
found to populate the node hierarchy. These changes make sure that the
implementation does not try to move up the node hierarchy if we are
already at the top.

fixes #17402

Signed-off-by: Hugo Beauzée-Luyssen <hugo@beauzee.fr>
modules/demux/ttml.c

index e100826..66638b0 100644 (file)
@@ -719,9 +719,12 @@ static int ReadTTML( demux_t* p_demux )
         /*  end tag after a p tag but inside the body */
         else if( i_type == XML_READER_ENDELEM && CompareTagName( psz_node_name, "body" ) )
         {
-            node_t* p_parent = p_parent_node->p_parent;
-            ClearNode( p_parent_node );
-            p_parent_node = p_parent;
+            if( p_parent_node )
+            {
+                node_t* p_parent = p_parent_node->p_parent;
+                ClearNode( p_parent_node );
+                p_parent_node = p_parent;
+            }
         }
     } while( i_type != XML_READER_ENDELEM || CompareTagName( psz_node_name, "tt" ) );
     ClearNodeStack( p_parent_node );