From cb90e1c4d03414b9abc765ab0b91d87a9278fb73 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sat, 6 Feb 2021 21:54:31 +0100 Subject: [PATCH] avformat/mov: sanity check STSD entries The choosen value is arbitrary. I am not sure if this is a good idea but i dont immedeately see an alternative better way, it seems either an arbitrary limit or OOM Fixes: OOM Fixes: 27492/clusterfuzz-testcase-minimized-ffmpeg_dem_MOV_fuzzer-6194970578649088 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer --- libavformat/mov.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/mov.c b/libavformat/mov.c index 2fd1f2cd8f..9ca0a3ee15 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -2605,7 +2605,7 @@ static int mov_read_stsd(MOVContext *c, AVIOContext *pb, MOVAtom atom) entries = avio_rb32(pb); /* Each entry contains a size (4 bytes) and format (4 bytes). */ - if (entries <= 0 || entries > atom.size / 8) { + if (entries <= 0 || entries > atom.size / 8 || entries > 1024) { av_log(c->fc, AV_LOG_ERROR, "invalid STSD entries %d\n", entries); return AVERROR_INVALIDDATA; }