From 1865bc93fc8975cef557b08b5a958b8cc4a173a7 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Wed, 23 Jul 2025 13:36:42 +0200 Subject: [PATCH] avformat/vqf: Ensure that comm_chunk is fully read Fixes: use of uninitialized memory Fixes: 412125811/clusterfuzz-testcase-minimized-ffmpeg_dem_VQF_fuzzer-6253774274887680 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer (cherry picked from commit 1b7a327b3a43df6ab82885cea5ae02bf9dd899a9) Signed-off-by: Michael Niedermayer --- libavformat/vqf.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libavformat/vqf.c b/libavformat/vqf.c index db49fdcfd9..e282011845 100644 --- a/libavformat/vqf.c +++ b/libavformat/vqf.c @@ -20,6 +20,7 @@ */ #include "avformat.h" +#include "avio_internal.h" #include "internal.h" #include "libavutil/intreadwrite.h" #include "libavutil/dict.h" @@ -141,7 +142,9 @@ static int vqf_read_header(AVFormatContext *s) if (len < 12) return AVERROR_INVALIDDATA; - avio_read(s->pb, comm_chunk, 12); + ret = ffio_read_size(s->pb, comm_chunk, 12); + if (ret < 0) + return ret; st->codecpar->ch_layout.nb_channels = AV_RB32(comm_chunk) + 1; read_bitrate = AV_RB32(comm_chunk + 4); rate_flag = AV_RB32(comm_chunk + 8);