[FFmpeg-devel] [PATCH] avformat/vpk: fix divide by zero
Kacper Michajłow
kasper93 at gmail.com
Wed Aug 7 16:42:46 EEST 2024
Can happen after calling avformat_find_stream_info() when the codec
fails to open, but return value is 0 and subsequent uses of this context
have zero value in channel number.
Found by OSS-Fuzz.
Signed-off-by: Kacper Michajłow <kasper93 at gmail.com>
---
libavformat/vpk.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/libavformat/vpk.c b/libavformat/vpk.c
index 001ad33555..aa98ef2dd4 100644
--- a/libavformat/vpk.c
+++ b/libavformat/vpk.c
@@ -86,6 +86,8 @@ static int vpk_read_packet(AVFormatContext *s, AVPacket *pkt)
vpk->current_block++;
if (vpk->current_block == vpk->block_count) {
+ if (par->ch_layout.nb_channels <= 0)
+ return AVERROR_INVALIDDATA;
unsigned size = vpk->last_block_size / par->ch_layout.nb_channels;
unsigned skip = (par->block_align - vpk->last_block_size) / par->ch_layout.nb_channels;
uint64_t pos = avio_tell(s->pb);
--
2.43.0
More information about the ffmpeg-devel
mailing list