mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-01-03 05:22:10 +00:00
avformat/mov: Check that we have a stream before accessing it in mov_read_ares()
Fixes out of array read Fixes: signal_sigsegv_6f1855_3910_avid_test_alpha.mov Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
64821f5a7c
commit
a7f27453f6
@ -1042,15 +1042,17 @@ static int mov_read_targa_y216(MOVContext *c, AVIOContext *pb, MOVAtom atom)
|
||||
|
||||
static int mov_read_ares(MOVContext *c, AVIOContext *pb, MOVAtom atom)
|
||||
{
|
||||
AVCodecContext *codec = c->fc->streams[c->fc->nb_streams-1]->codec;
|
||||
if (codec->codec_tag == MKTAG('A', 'V', 'i', 'n') &&
|
||||
codec->codec_id == AV_CODEC_ID_H264 &&
|
||||
atom.size > 11) {
|
||||
avio_skip(pb, 10);
|
||||
/* For AVID AVCI50, force width of 1440 to be able to select the correct SPS and PPS */
|
||||
if (avio_rb16(pb) == 0xd4d)
|
||||
codec->width = 1440;
|
||||
return 0;
|
||||
if (c->fc->nb_streams >= 1) {
|
||||
AVCodecContext *codec = c->fc->streams[c->fc->nb_streams-1]->codec;
|
||||
if (codec->codec_tag == MKTAG('A', 'V', 'i', 'n') &&
|
||||
codec->codec_id == AV_CODEC_ID_H264 &&
|
||||
atom.size > 11) {
|
||||
avio_skip(pb, 10);
|
||||
/* For AVID AVCI50, force width of 1440 to be able to select the correct SPS and PPS */
|
||||
if (avio_rb16(pb) == 0xd4d)
|
||||
codec->width = 1440;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
return mov_read_avid(c, pb, atom);
|
||||
|
Loading…
Reference in New Issue
Block a user