[FFmpeg-cvslog] avcodec/ffv1dec: don't add offsets to NULL pointers

James Almer git at videolan.org
Tue Jul 15 16:24:52 EEST 2025


ffmpeg | branch: master | James Almer <jamrial at gmail.com> | Sun Jul 13 19:56:13 2025 -0300| [9c55f22ef234046dfd47ae414f59e9e2c1530263] | committer: James Almer

avcodec/ffv1dec: don't add offsets to NULL pointers

Fixes: libavcodec/ffv1dec.c:452:43: runtime error: applying zero offset to null pointer
Signed-off-by: James Almer <jamrial at gmail.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9c55f22ef234046dfd47ae414f59e9e2c1530263
---

 libavcodec/ffv1dec.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/libavcodec/ffv1dec.c b/libavcodec/ffv1dec.c
index 8d10d2cf8b..d613aa5395 100644
--- a/libavcodec/ffv1dec.c
+++ b/libavcodec/ffv1dec.c
@@ -444,14 +444,16 @@ static int decode_slice(AVCodecContext *c, void *arg)
     } else if (f->use32bit) {
         uint8_t *planes[4] = { p->data[0] + ps * x + y * p->linesize[0],
                                p->data[1] + ps * x + y * p->linesize[1],
-                               p->data[2] + ps * x + y * p->linesize[2],
-                               p->data[3] + ps * x + y * p->linesize[3] };
+                               p->data[2] + ps * x + y * p->linesize[2] };
+        if (f->transparency)
+            planes[3] =        p->data[3] + ps * x + y * p->linesize[3];
         decode_rgb_frame32(f, sc, &gb, planes, width, height, p->linesize);
     } else {
         uint8_t *planes[4] = { p->data[0] + ps * x + y * p->linesize[0],
                                p->data[1] + ps * x + y * p->linesize[1],
-                               p->data[2] + ps * x + y * p->linesize[2],
-                               p->data[3] + ps * x + y * p->linesize[3] };
+                               p->data[2] + ps * x + y * p->linesize[2] };
+        if (f->transparency)
+            planes[3] =        p->data[3] + ps * x + y * p->linesize[3];
         decode_rgb_frame(f, sc, &gb, planes, width, height, p->linesize);
     }
     if (ac != AC_GOLOMB_RICE && f->version > 2) {



More information about the ffmpeg-cvslog mailing list