[FFmpeg-devel] [PATCH] avcodec/av1_parse: Check obu_size

Michael Niedermayer michael at niedermayer.cc
Sun Oct 14 16:43:56 EEST 2018


Fixes: out of array read
Fixes: SIGSEGV_get_obu_bit_length_av1_parse

Found-by: keval shah <skeval65 at gmail.com>
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
---
 libavcodec/av1_parse.h | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/libavcodec/av1_parse.h b/libavcodec/av1_parse.h
index 276af33ba9..312d8825e1 100644
--- a/libavcodec/av1_parse.h
+++ b/libavcodec/av1_parse.h
@@ -130,6 +130,9 @@ static inline int parse_obu_header(const uint8_t *buf, int buf_size,
     if (get_bits_left(&gb) < 0)
         return AVERROR_INVALIDDATA;
 
+    if (*obu_size > (uint64_t)buf_size - get_bits_count(&gb) / 8)
+        return AVERROR_INVALIDDATA;
+
     *start_pos = get_bits_count(&gb) / 8;
 
     size = *obu_size + *start_pos;
-- 
2.19.1



More information about the ffmpeg-devel mailing list