summaryrefslogtreecommitdiff
path: root/libavcodec/hevc_parser.c
diff options
context:
space:
mode:
authorAndreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>2015-07-10 19:41:43 +0200
committerAndreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>2015-07-10 21:28:56 +0200
commit05cc8c8e4b7008ff3be8ec477c901b2ceca4b16b (patch)
tree90e824ca662eb56929fd1780d2d5f65a2d08be4d /libavcodec/hevc_parser.c
parent72527d9c54a95454153e971d11f114f2a4f19073 (diff)
hevc: check slice address length
It is used as get_bits argument and reading 0 bits isn't supported. Reviewed-by: Michael Niedermayer <michaelni@gmx.at> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Diffstat (limited to 'libavcodec/hevc_parser.c')
-rw-r--r--libavcodec/hevc_parser.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libavcodec/hevc_parser.c b/libavcodec/hevc_parser.c
index 3c7c3c377d..31452f2055 100644
--- a/libavcodec/hevc_parser.c
+++ b/libavcodec/hevc_parser.c
@@ -200,7 +200,7 @@ static inline int parse_nal_units(AVCodecParserContext *s, AVCodecContext *avctx
slice_address_length = av_ceil_log2_c(h->sps->ctb_width *
h->sps->ctb_height);
- sh->slice_segment_addr = get_bits(gb, slice_address_length);
+ sh->slice_segment_addr = slice_address_length ? get_bits(gb, slice_address_length) : 0;
if (sh->slice_segment_addr >= h->sps->ctb_width * h->sps->ctb_height) {
av_log(h->avctx, AV_LOG_ERROR, "Invalid slice segment address: %u.\n",
sh->slice_segment_addr);