ffmpeg | branch: master | Dale Curtis <[email protected]> | 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 <[email protected]>
Signed-off-by: Michael Niedermayer <[email protected]>

> 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;
         }

_______________________________________________
ffmpeg-cvslog mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".

Reply via email to