mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-24 16:22:37 +00:00
avformat/isom: check avio_read() result
Fixes use of uninitialized memory Fixes: msan_uninit-mem_7f7aa4151661_4885_dmbts3.ts Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
b797a00f63
commit
2c635fabbf
@ -438,6 +438,7 @@ static const AVCodecTag mp4_audio_types[] = {
|
|||||||
int ff_mp4_read_dec_config_descr(AVFormatContext *fc, AVStream *st, AVIOContext *pb)
|
int ff_mp4_read_dec_config_descr(AVFormatContext *fc, AVStream *st, AVIOContext *pb)
|
||||||
{
|
{
|
||||||
int len, tag;
|
int len, tag;
|
||||||
|
int ret;
|
||||||
int object_type_id = avio_r8(pb);
|
int object_type_id = avio_r8(pb);
|
||||||
avio_r8(pb); /* stream type */
|
avio_r8(pb); /* stream type */
|
||||||
avio_rb24(pb); /* buffer size db */
|
avio_rb24(pb); /* buffer size db */
|
||||||
@ -459,7 +460,8 @@ int ff_mp4_read_dec_config_descr(AVFormatContext *fc, AVStream *st, AVIOContext
|
|||||||
av_free(st->codec->extradata);
|
av_free(st->codec->extradata);
|
||||||
if (ff_alloc_extradata(st->codec, len))
|
if (ff_alloc_extradata(st->codec, len))
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
avio_read(pb, st->codec->extradata, len);
|
if ((ret = avio_read(pb, st->codec->extradata, len)) != len)
|
||||||
|
return ret < 0 ? ret : AVERROR_INVALIDDATA;
|
||||||
if (st->codec->codec_id == AV_CODEC_ID_AAC) {
|
if (st->codec->codec_id == AV_CODEC_ID_AAC) {
|
||||||
MPEG4AudioConfig cfg = {0};
|
MPEG4AudioConfig cfg = {0};
|
||||||
avpriv_mpeg4audio_get_config(&cfg, st->codec->extradata,
|
avpriv_mpeg4audio_get_config(&cfg, st->codec->extradata,
|
||||||
|
Loading…
Reference in New Issue
Block a user