[FFmpeg-cvslog] avformat/mov: Fix nullptr dereference with invalid encryption metadata.
Dale Curtis
git at videolan.org
Mon Aug 19 00:18:51 EEST 2024
ffmpeg | branch: master | Dale Curtis <dalecurtis at chromium.org> | Fri Aug 2 22:04:46 2024 +0000| [4230379835780c855818d7141082d9558e3842dc] | committer: Michael Niedermayer
avformat/mov: Fix nullptr dereference with invalid encryption metadata.
Found by fuzzer.
Bug: https://crbug.com/356720789
Signed-off-by: Dale Curtis <dalecurtis at chromium.org>
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4230379835780c855818d7141082d9558e3842dc
---
libavformat/mov.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/libavformat/mov.c b/libavformat/mov.c
index f2d8aee766..d57c4f150b 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -8143,15 +8143,19 @@ static int cenc_filter(MOVContext *mov, AVStream* st, MOVStreamContext *sc, AVPa
return AVERROR_INVALIDDATA;
}
+ encrypted_sample = NULL;
if (!encryption_index->nb_encrypted_samples) {
// Full-sample encryption with default settings.
encrypted_sample = sc->cenc.default_encrypted_sample;
} else if (encrypted_index >= 0 && encrypted_index < encryption_index->nb_encrypted_samples) {
// Per-sample setting override.
encrypted_sample = encryption_index->encrypted_samples[encrypted_index];
- if (!encrypted_sample)
+ if (!encrypted_sample) {
encrypted_sample = sc->cenc.default_encrypted_sample;
- } else {
+ }
+ }
+
+ if (!encrypted_sample) {
av_log(mov->fc, AV_LOG_ERROR, "Incorrect number of samples in encryption info\n");
return AVERROR_INVALIDDATA;
}
More information about the ffmpeg-cvslog
mailing list