diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2015-05-12 19:28:15 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2015-05-15 10:04:51 +0200 |
commit | 0fc6a9511634c58f1cb93ccf8f6bb1da14141d8b (patch) | |
tree | 229f1b53fca70487017e39a39cc544d4489404be | |
parent | f93412406f413223ed5fac3dd9ecedd0c7fd45c8 (diff) | |
download | ffmpeg-0fc6a9511634c58f1cb93ccf8f6bb1da14141d8b.tar.gz |
avformat/hevc: Check num_negative_pics and num_positive_pics
Fixes CID1238994
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit b62b3292d8e25d3240e462c1b1cd8ac69195c46b)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavformat/hevc.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/libavformat/hevc.c b/libavformat/hevc.c index 8ef3c1f986..c92e9eb118 100644 --- a/libavformat/hevc.c +++ b/libavformat/hevc.c @@ -462,6 +462,9 @@ static int parse_rps(GetBitContext *gb, unsigned int rps_idx, unsigned int num_negative_pics = get_ue_golomb_long(gb); unsigned int num_positive_pics = get_ue_golomb_long(gb); + if ((num_positive_pics + (uint64_t)num_negative_pics) * 2 > get_bits_left(gb)) + return AVERROR_INVALIDDATA; + num_delta_pocs[rps_idx] = num_negative_pics + num_positive_pics; for (i = 0; i < num_negative_pics; i++) { |