mirror of
https://gitee.com/openharmony/third_party_ffmpeg
synced 2024-11-25 04:09:57 +00:00
rmdec: when using INT4 deinterleaving, error out if sub_packet_h <= 1.
We read sub_packet_h / 2 packets per line of data (during deinterleaving), which equals zero if sub_packet_h <= 1, thus causing us to not read any data, leading to an infinite loop. Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org
This commit is contained in:
parent
58700edb94
commit
e30b3e59a4
@ -265,6 +265,7 @@ static int rm_read_audio_stream_info(AVFormatContext *s, AVIOContext *pb,
|
||||
switch (ast->deint_id) {
|
||||
case DEINT_ID_INT4:
|
||||
if (ast->coded_framesize > ast->audio_framesize ||
|
||||
sub_packet_h <= 1 ||
|
||||
ast->coded_framesize * sub_packet_h > (2 + (sub_packet_h & 1)) * ast->audio_framesize)
|
||||
return AVERROR_INVALIDDATA;
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user