[FFmpeg-devel] [PATCH 1/5] avcodec/av1dec, libdav1d, wbmpdec: Avoid direct access to GetByteContext

Andreas Rheinhardt ffmpegagent at gmail.com
Fri Jul 11 21:00:02 EEST 2025


From: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
---
 libavcodec/av1dec.c   | 2 +-
 libavcodec/libdav1d.c | 2 +-
 libavcodec/wbmpdec.c  | 3 ++-
 3 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/libavcodec/av1dec.c b/libavcodec/av1dec.c
index 8ff1bf394c..dcbe4ef2ce 100644
--- a/libavcodec/av1dec.c
+++ b/libavcodec/av1dec.c
@@ -1024,7 +1024,7 @@ FF_ENABLE_DEPRECATION_WARNINGS
             provider_oriented_code != 0x800)
             break;
 
-        ret = ff_dovi_rpu_parse(&s->dovi, gb.buffer, gb.buffer_end - gb.buffer,
+        ret = ff_dovi_rpu_parse(&s->dovi, gb.buffer, bytestream2_get_bytes_left(&gb),
                                 avctx->err_recognition);
         if (ret < 0) {
             av_log(avctx, AV_LOG_WARNING, "Error parsing DOVI OBU.\n");
diff --git a/libavcodec/libdav1d.c b/libavcodec/libdav1d.c
index f4cbc927b5..f24d00ca38 100644
--- a/libavcodec/libdav1d.c
+++ b/libavcodec/libdav1d.c
@@ -576,7 +576,7 @@ FF_ENABLE_DEPRECATION_WARNINGS
                 provider_oriented_code != 0x800)
                 break;
 
-            res = ff_dovi_rpu_parse(&dav1d->dovi, gb.buffer, gb.buffer_end - gb.buffer,
+            res = ff_dovi_rpu_parse(&dav1d->dovi, gb.buffer, bytestream2_get_bytes_left(&gb),
                                     c->err_recognition);
             if (res < 0) {
                 av_log(c, AV_LOG_WARNING, "Error parsing DOVI OBU.\n");
diff --git a/libavcodec/wbmpdec.c b/libavcodec/wbmpdec.c
index 50c729047d..5a61510a88 100644
--- a/libavcodec/wbmpdec.c
+++ b/libavcodec/wbmpdec.c
@@ -72,7 +72,8 @@ static int wbmp_decode_frame(AVCodecContext *avctx, AVFrame *p,
     if (p->linesize[0] == (width + 7) / 8)
         bytestream2_get_buffer(&gb, p->data[0], height * ((width + 7) / 8));
     else
-        readbits(p->data[0], width, height, p->linesize[0], gb.buffer, gb.buffer_end - gb.buffer);
+        readbits(p->data[0], width, height, p->linesize[0],
+                 gb.buffer, bytestream2_get_bytes_left(&gb));
 
     *got_frame   = 1;
 
-- 
ffmpeg-codebot



More information about the ffmpeg-devel mailing list