diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2015-05-13 13:13:07 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2015-06-17 21:50:07 +0200 |
commit | eed8ccd9eb3eb37e7ba09c5fb921f7db76d305ae (patch) | |
tree | be763770fb53df2450d85cc7f93dbb6cd9a99fb8 | |
parent | 6d6acef9fb83e616d983700f824a13146c0c4a2f (diff) | |
download | ffmpeg-eed8ccd9eb3eb37e7ba09c5fb921f7db76d305ae.tar.gz |
avcodec/hevc: Check offset_len
Fixes CID1239099 part 1
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 3e9d5e16ad9799f6b6faae4f21120d23146b84c9)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavcodec/hevc.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/libavcodec/hevc.c b/libavcodec/hevc.c index 2d81a3a874..7b2bd154f3 100644 --- a/libavcodec/hevc.c +++ b/libavcodec/hevc.c @@ -649,6 +649,13 @@ static int hls_slice_header(HEVCContext *s) int offset_len = get_ue_golomb_long(gb) + 1; int segments = offset_len >> 4; int rest = (offset_len & 15); + + if (offset_len < 1 || offset_len > 32) { + sh->num_entry_point_offsets = 0; + av_log(s->avctx, AV_LOG_ERROR, "offset_len %d is invalid\n", offset_len); + return AVERROR_INVALIDDATA; + } + av_freep(&sh->entry_point_offset); av_freep(&sh->offset); av_freep(&sh->size); |