[FFmpeg-cvslog] avformat/asfdec_f: Check amount of value read
Michael Niedermayer
git at videolan.org
Mon Aug 4 19:38:05 EEST 2025
ffmpeg | branch: release/6.1 | Michael Niedermayer <michael at niedermayer.cc> | Wed Jul 23 01:57:54 2025 +0200| [bdeed02e5ff10d544153b49046f3668ece391b00] | committer: Michael Niedermayer
avformat/asfdec_f: Check amount of value read
Fixes: use of uninitialized memory
Fixes: 403675492/clusterfuzz-testcase-minimized-ffmpeg_dem_ASF_fuzzer-4754281823797248
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
(cherry picked from commit fa197924a66d83106c5d4dadb8610a1c526afd67)
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=bdeed02e5ff10d544153b49046f3668ece391b00
---
libavformat/asfdec_f.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/libavformat/asfdec_f.c b/libavformat/asfdec_f.c
index a556ba890b..ab1dfa670c 100644
--- a/libavformat/asfdec_f.c
+++ b/libavformat/asfdec_f.c
@@ -239,8 +239,10 @@ static void get_tag(AVFormatContext *s, const char *key, int type, int len, int
case ASF_UNICODE:
avio_get_str16le(s->pb, len, value, 2 * len + 1);
break;
- case -1: // ASCI
- avio_read(s->pb, value, len);
+ case -1:; // ASCII
+ int ret = ffio_read_size(s->pb, value, len);
+ if (ret < 0)
+ goto finish;
value[len]=0;
break;
case ASF_BYTE_ARRAY:
More information about the ffmpeg-cvslog
mailing list