vlc | branch: master | Denis Charmet <[email protected]> | Sun Apr 8 02:14:03 2012 +0200| [4599e6a4491fce5a8ae3377e601ab3aa258d33e4] | committer: Jean-Baptiste Kempf
MKV: Don't crash when loading a directory with no uid MKV files Close #6575 Signed-off-by: Jean-Baptiste Kempf <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=4599e6a4491fce5a8ae3377e601ab3aa258d33e4 --- modules/demux/mkv/demux.cpp | 4 ++-- modules/demux/mkv/virtual_segment.cpp | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/modules/demux/mkv/demux.cpp b/modules/demux/mkv/demux.cpp index f68dde5..d863bb7 100644 --- a/modules/demux/mkv/demux.cpp +++ b/modules/demux/mkv/demux.cpp @@ -554,7 +554,7 @@ matroska_stream_c *demux_sys_t::AnalyseAllSegmentsFound( demux_t *p_demux, EbmlS break; } } - if ( b_keep_segment ) + if ( b_keep_segment || !p_segment1->p_segment_uid ) { b_keep_stream = true; p_stream1->segments.push_back( p_segment1 ); @@ -746,7 +746,7 @@ matroska_segment_c *demux_sys_t::FindSegment( const EbmlBinary & uid ) const { for (size_t i=0; i<opened_segments.size(); i++) { - if ( *opened_segments[i]->p_segment_uid == uid ) + if ( opened_segments[i]->p_segment_uid && *opened_segments[i]->p_segment_uid == uid ) return opened_segments[i]; } return NULL; diff --git a/modules/demux/mkv/virtual_segment.cpp b/modules/demux/mkv/virtual_segment.cpp index 9892b7c..682b552 100644 --- a/modules/demux/mkv/virtual_segment.cpp +++ b/modules/demux/mkv/virtual_segment.cpp @@ -31,7 +31,8 @@ matroska_segment_c * getSegmentbyUID( KaxSegmentUID * p_uid, std::vector<matrosk { for( size_t i = 0; i < (*segments).size(); i++ ) { - if( *p_uid == *((*segments)[i]->p_segment_uid) ) + if( (*segments)[i]->p_segment_uid && + *p_uid == *((*segments)[i]->p_segment_uid) ) return (*segments)[i]; } return NULL; _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
