mkv: abort if read fails during seek
authorFilip Roséen <filip@videolabs.io>
Tue, 14 Jun 2016 14:58:25 +0000 (16:58 +0200)
committerThomas Guillem <thomas@gllm.fr>
Tue, 14 Jun 2016 15:04:22 +0000 (17:04 +0200)
Signed-off-by: Thomas Guillem <thomas@gllm.fr>
modules/demux/mkv/matroska_segment_seeker.cpp

index cd9b7ae..de18242 100644 (file)
@@ -427,7 +427,12 @@ SegmentSeeker::mkv_jump_to( matroska_segment_c& ms, fptr_t fpos )
 
     while( ms.cluster == NULL || ms.cluster->GetEndPosition() < fpos )
     {
-        ms.cluster    = static_cast<KaxCluster*>( ms.ep->Get() );
+        if( !( ms.cluster = static_cast<KaxCluster*>( ms.ep->Get() ) ) )
+        {
+            msg_Err( &ms.sys.demuxer, "unable to read KaxCluster during seek, giving up" );
+            return;
+        }
+
         i_cluster_pos = ms.cluster->GetElementPosition();
 
         add_cluster_position( i_cluster_pos );