[FFmpeg-cvslog] avcodec/dovi_rpudec: validate L2.ms_weight

Niklas Haas git at videolan.org
Tue Jun 18 22:18:46 EEST 2024


ffmpeg | branch: master | Niklas Haas <git at haasn.dev> | Fri Jun 14 13:59:26 2024 +0200| [954f890f9553fa13baf4cbc58e9359492fbe8b81] | committer: Niklas Haas

avcodec/dovi_rpudec: validate L2.ms_weight

This is specified to be in the range -1 to 4095, apparently the only
extension level with such a restriction.

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

 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)



More information about the ffmpeg-cvslog mailing list