PR #24846 opened by michaelni
URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/24846
Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/24846.patch

The testcases reproduce since b0c77e5a12.

Fixes: out of array read
Fixes: fAak9zecyttL/testcase/poc.vvc
Fixes: fAak9zecyttL/testcase/poc-entry-points.vvc
Fixes: fAak9zecyttL
Found-by: mzfr <[email protected]>



>From 09edccaefd5d040a94d5f9a180aa5480b4c97f1d Mon Sep 17 00:00:00 2001
From: Michael Niedermayer <[email protected]>
Date: Fri, 2 Oct 2026 03:02:43 +0200
Subject: [PATCH] avcodec/vvc/dec: require all slices of a frame to use the
 same PH and PPS

The testcases reproduce since b0c77e5a12.

Fixes: out of array read
Fixes: fAak9zecyttL/testcase/poc.vvc
Fixes: fAak9zecyttL/testcase/poc-entry-points.vvc
Fixes: fAak9zecyttL
Found-by: mzfr <[email protected]>
---
 libavcodec/vvc/dec.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/libavcodec/vvc/dec.c b/libavcodec/vvc/dec.c
index f7c51f01a1..728457a1e7 100644
--- a/libavcodec/vvc/dec.c
+++ b/libavcodec/vvc/dec.c
@@ -961,6 +961,15 @@ static int decode_slice(VVCContext *s, VVCFrameContext 
*fc, AVBufferRef *buf_ref
         ret = frame_setup(fc, s);
         if (ret < 0)
             return ret;
+    } else {
+        const H266RawSlice *first = fc->slices[0]->ref;
+        const H266RawSlice *slice = sc->ref;
+
+        if (slice->ph != first->ph || slice->pps != first->pps) {
+            av_log(fc->log_ctx, AV_LOG_ERROR,
+                   "Slice does not use the PH and PPS of the first slice.\n");
+            return AVERROR_INVALIDDATA;
+        }
     }
 
     ret = slice_start(sc, s, fc, unit, is_first_slice);
-- 
2.52.0

_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to