mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
avformat/argo_brp: remove block_align check for audio
Causes a divide-by-zero in the rare case where: - the file has an audio stream, - the first audio frame isn't within the first BRP_BASF_LOOKAHEAD frames, - an audio frame is encountered later, and - its chunk header (except num_blocks) contains all zeros (matching the uninitialised structure in the context) The decoder will discard any garbage data, so the check isn't really needed. Fixes: division by 0 Fixes: 26667/clusterfuzz-testcase-minimized-ffmpeg_dem_ARGO_BRP_fuzzer-5645146928185344.fuzz Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
This commit is contained in:
parent
63f5f01226
commit
769ab6b864
@ -392,9 +392,6 @@ static int argo_brp_read_packet(AVFormatContext *s, AVPacket *pkt)
|
|||||||
return AVERROR_INVALIDDATA;
|
return AVERROR_INVALIDDATA;
|
||||||
|
|
||||||
blk.size -= ASF_CHUNK_HEADER_SIZE;
|
blk.size -= ASF_CHUNK_HEADER_SIZE;
|
||||||
|
|
||||||
if (blk.size % st->codecpar->block_align != 0)
|
|
||||||
return AVERROR_INVALIDDATA;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((ret = av_get_packet(s->pb, pkt, blk.size)) < 0)
|
if ((ret = av_get_packet(s->pb, pkt, blk.size)) < 0)
|
||||||
|
Loading…
Reference in New Issue
Block a user