[FFmpeg-devel] [PATCH 2/2] avcodec/dovi_rpudec: validate L2.ms_weight

Niklas Haas ffmpeg at haasn.xyz
Fri Jun 14 15:00:14 EEST 2024


From: Niklas Haas <git at haasn.dev>

This is specified to be in the range -1 to 4095, apparently the only
extension level with such a restriction.
---
 libavcodec/dovi_rpudec.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/libavcodec/dovi_rpudec.c b/libavcodec/dovi_rpudec.c
index fc3b0a2b82..306efbb31f 100644
--- a/libavcodec/dovi_rpudec.c
+++ b/libavcodec/dovi_rpudec.c
@@ -143,6 +143,7 @@ static int parse_ext_v1(DOVIContext *s, GetBitContext *gb, AVDOVIDmData *dm)
         dm->l2.trim_chroma_weight = get_bits(gb, 12);
         dm->l2.trim_saturation_gain = get_bits(gb, 12);
         dm->l2.ms_weight = get_sbits(gb, 13);
+        VALIDATE(dm->l2.ms_weight, -1, 4095);
         break;
     case 4:
         dm->l4.anchor_pq = get_bits(gb, 12);
@@ -172,6 +173,9 @@ static int parse_ext_v1(DOVIContext *s, GetBitContext *gb, AVDOVIDmData *dm)
     }
 
     return 0;
+
+fail:
+    return AVERROR_INVALIDDATA;
 }
 
 static AVCIExy get_cie_xy(GetBitContext *gb)
-- 
2.45.1



More information about the ffmpeg-devel mailing list