mirror of https://git.ffmpeg.org/ffmpeg.git
oggparsedirac: check return value of init_get_bits
If init_get_bits fails the GetBitContext is invalid and must not be used. Check the return value in dirac_header and propogate the error. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
b409748bc4
commit
4f5c2e651a
|
@ -31,14 +31,19 @@ static int dirac_header(AVFormatContext *s, int idx)
|
|||
AVStream *st = s->streams[idx];
|
||||
dirac_source_params source;
|
||||
GetBitContext gb;
|
||||
int ret;
|
||||
|
||||
// already parsed the header
|
||||
if (st->codec->codec_id == AV_CODEC_ID_DIRAC)
|
||||
return 0;
|
||||
|
||||
init_get_bits(&gb, os->buf + os->pstart + 13, (os->psize - 13) * 8);
|
||||
if (avpriv_dirac_parse_sequence_header(st->codec, &gb, &source) < 0)
|
||||
return -1;
|
||||
ret = init_get_bits8(&gb, os->buf + os->pstart + 13, (os->psize - 13));
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
ret = avpriv_dirac_parse_sequence_header(st->codec, &gb, &source);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
st->codec->codec_type = AVMEDIA_TYPE_VIDEO;
|
||||
st->codec->codec_id = AV_CODEC_ID_DIRAC;
|
||||
|
|
Loading…
Reference in New Issue