Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
* [FFmpeg-devel] [PATCH] avcodec/ffv1dec: don't add offsets to more NULL pointer
@ 2025-07-19  0:54 James Almer
  0 siblings, 0 replies; only message in thread
From: James Almer @ 2025-07-19  0:54 UTC (permalink / raw)
  To: ffmpeg-devel

Fixes: libavcodec/ffv1dec.c:453:43: runtime error: applying zero offset to null pointer
Signed-off-by: James Almer <jamrial@gmail.com>
---
 libavcodec/ffv1dec.c | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/libavcodec/ffv1dec.c b/libavcodec/ffv1dec.c
index d613aa5395..cf5ca1bae3 100644
--- a/libavcodec/ffv1dec.c
+++ b/libavcodec/ffv1dec.c
@@ -442,16 +442,20 @@ static int decode_slice(AVCodecContext *c, void *arg)
          decode_plane(f, sc, &gb, p->data[0] + ps*x + y*p->linesize[0]          , width, height, p->linesize[0], 0, 0, 2, ac);
          decode_plane(f, sc, &gb, p->data[0] + ps*x + y*p->linesize[0] + (ps>>1), width, height, p->linesize[0], 1, 1, 2, ac);
     } 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] };
+        uint8_t *planes[4] = { p->data[0] + ps * x + y * p->linesize[0] };
+        if (f->chroma_planes) {
+            planes[1] =        p->data[1] + ps * x + y * p->linesize[1];
+            planes[2] =        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] };
+        uint8_t *planes[4] = { p->data[0] + ps * x + y * p->linesize[0] };
+        if (f->chroma_planes) {
+            planes[1] =        p->data[1] + ps * x + y * p->linesize[1];
+            planes[2] =        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);
-- 
2.50.1

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2025-07-19  0:54 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-07-19  0:54 [FFmpeg-devel] [PATCH] avcodec/ffv1dec: don't add offsets to more NULL pointer James Almer

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git