Browse Source

demux: mkv: fix NULL deference error with invalid header compression

pull/130/merge
unichronic 1 month ago
committed by Felix Paul Kühne
parent
commit
107825b609
  1. 8
      modules/demux/mkv/matroska_segment_parse.cpp
  2. 1
      modules/demux/mkv/mkv.cpp

8
modules/demux/mkv/matroska_segment_parse.cpp

@ -1130,6 +1130,14 @@ void matroska_segment_c::ParseTrackEntry( const KaxTrackEntry *m )
delete p_track;
return;
}
if( p_track->i_compression_type == MATROSKA_COMPRESSION_HEADER &&
p_track->p_compression_data == NULL )
{
msg_Err(&sys.demuxer, "Track %u header compression missing header data", p_track->i_number );
delete p_track;
return;
}
if( !TrackInit( p_track ) )
{
msg_Err(&sys.demuxer, "Couldn't init track %u", p_track->i_number );

1
modules/demux/mkv/mkv.cpp

@ -601,7 +601,6 @@ static void BlockDecode( demux_t *p_demux, KaxBlock *block, KaxSimpleBlock *simp
size_t extra_data = track.fmt.i_codec == VLC_CODEC_PRORES ? 8 : 0;
if( track.i_compression_type == MATROSKA_COMPRESSION_HEADER &&
track.p_compression_data != NULL &&
track.i_encoding_scope & MATROSKA_ENCODING_SCOPE_ALL_FRAMES )
p_block = MemToBlock( data->Buffer(), data->Size(), track.p_compression_data->GetSize() + extra_data );
else if( unlikely( track.fmt.i_codec == VLC_CODEC_WAVPACK ) )

Loading…
Cancel
Save