[vlc-commits] [Git][videolan/vlc][master] 3 commits: demux: mkv: debug the Dummy element buggy position
Felix Paul Kühne (@fkuehne)
gitlab at videolan.org
Thu Mar 12 18:01:16 UTC 2026
Felix Paul Kühne pushed to branch master at VideoLAN / VLC
Commits:
f87900ad by Steve Lhomme at 2026-03-12T18:36:26+01:00
demux: mkv: debug the Dummy element buggy position
- - - - -
344e4f19 by Steve Lhomme at 2026-03-12T18:36:26+01:00
demux: mkv: use size_t for levels in m_el table
It should never be negative.
- - - - -
1e408840 by Steve Lhomme at 2026-03-12T18:36:26+01:00
demux: mkv: remove else after return
- - - - -
2 changed files:
- modules/demux/mkv/Ebml_parser.cpp
- modules/demux/mkv/Ebml_parser.hpp
Changes:
=====================================
modules/demux/mkv/Ebml_parser.cpp
=====================================
@@ -52,7 +52,7 @@ EbmlParser::~EbmlParser( void )
return;
}
- for( int i = 1; i <= mi_level; i++ )
+ for( size_t i = 1; i <= mi_level; i++ )
{
if( !mb_keep )
{
@@ -76,6 +76,7 @@ void EbmlParser::Up( void )
msg_Warn( p_demux, "MKV/Ebml Parser: Up cannot escape itself" );
}
+ assert(mi_user_level != 0);
mi_user_level--;
}
@@ -256,7 +257,7 @@ next:
}
return NULL;
}
- else if( m_el[mi_level] == NULL )
+ if( m_el[mi_level] == NULL )
{
msg_Dbg( p_demux,"MKV/Ebml Parser: m_el[mi_level] == NULL" );
/* go back to the end of the parent */
@@ -278,7 +279,8 @@ next:
p_prev && p_prev->IsFiniteSize() &&
p_prev->GetEndPosition() != m_el[mi_level]->GetElementPosition() )
{
- msg_Err( p_demux, "Dummy Element at unexpected position... corrupted file?" );
+ msg_Err( p_demux, "Dummy Element at unexpected position (%" PRIu64 " instead of %" PRIu64 ")... corrupted file?",
+ m_el[mi_level]->GetElementPosition(), p_prev->GetEndPosition() );
b_bad_position = true;
}
@@ -347,7 +349,7 @@ next:
bool EbmlParser::IsTopPresent( EbmlElement *el ) const
{
- for( int i = 0; i < mi_level; i++ )
+ for( size_t i = 0; i < mi_level; i++ )
{
if( m_el[i] && m_el[i] == el )
return true;
=====================================
modules/demux/mkv/Ebml_parser.hpp
=====================================
@@ -56,12 +56,12 @@ class EbmlParser
demux_t *p_demux;
matroska_iostream_c *m_es;
- int mi_level;
+ size_t mi_level;
EbmlElement *m_el[M_EL_MAXSIZE];
EbmlElement *m_got;
- int mi_user_level;
+ size_t mi_user_level;
bool mb_keep;
/* Allow dummy/unknown EBML elements */
bool mb_dummy;
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/c5a0f9f52e00c5b7379181416b9c651c3fb0c8c2...1e4088406663104e6ea810b1b30ec32f3db8e550
--
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/c5a0f9f52e00c5b7379181416b9c651c3fb0c8c2...1e4088406663104e6ea810b1b30ec32f3db8e550
You're receiving this email because of your account on code.videolan.org.
VideoLAN code repository instance
More information about the vlc-commits
mailing list