diff --git a/libavformat/avidec.c b/libavformat/avidec.c index 8a0938d5dc..5c9443a4f4 100644 --- a/libavformat/avidec.c +++ b/libavformat/avidec.c @@ -308,7 +308,8 @@ static int avi_read_tag(AVFormatContext *s, AVStream *st, uint32_t tag, value = av_malloc(size + 1); if (!value) return AVERROR(ENOMEM); - avio_read(pb, value, size); + if (avio_read(pb, value, size) != size) + return AVERROR_INVALIDDATA; value[size] = 0; AV_WL32(key, tag);