summaryrefslogtreecommitdiffstats
path: root/libavcodec/hevc.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2014-02-07 02:37:18 +0100
committerMichael Niedermayer <michaelni@gmx.at>2014-02-07 03:47:49 +0100
commit56985d26d7054079cbe8865532c4a2cff123f596 (patch)
tree0d91862efba3f5256ac970b57edea0324ba0a61b /libavcodec/hevc.c
parent951793717a285faf68b8ade7fde52a445f75f5c0 (diff)
downloadffmpeg-streaming-56985d26d7054079cbe8865532c4a2cff123f596.zip
ffmpeg-streaming-56985d26d7054079cbe8865532c4a2cff123f596.tar.gz
avcodec/hevc: clear tab_slice_address in hevc_frame_start()
Fixes inconsistencies Fixes use of uninitilaized memory Fixes part of cb307d24befbd109c6f054008d6777b5/asan_static-oob_124a175_1445_cov_2355279992_DBLK_D_VIXS_1.bit Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/hevc.c')
-rw-r--r--libavcodec/hevc.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/libavcodec/hevc.c b/libavcodec/hevc.c
index 666a28c..8e8adf1 100644
--- a/libavcodec/hevc.c
+++ b/libavcodec/hevc.c
@@ -2199,12 +2199,15 @@ static int set_side_data(HEVCContext *s)
static int hevc_frame_start(HEVCContext *s)
{
HEVCLocalContext *lc = s->HEVClc;
+ int pic_size_in_ctb = ((s->sps->width >> s->sps->log2_min_cb_size) + 1) *
+ ((s->sps->height >> s->sps->log2_min_cb_size) + 1);
int ret;
memset(s->horizontal_bs, 0, 2 * s->bs_width * (s->bs_height + 1));
memset(s->vertical_bs, 0, 2 * s->bs_width * (s->bs_height + 1));
memset(s->cbf_luma, 0, s->sps->min_tb_width * s->sps->min_tb_height);
memset(s->is_pcm, 0, s->sps->min_pu_width * s->sps->min_pu_height);
+ memset(s->tab_slice_address, -1, pic_size_in_ctb * sizeof(*s->tab_slice_address));
lc->start_of_tiles_x = 0;
s->is_decoded = 0;
OpenPOWER on IntegriCloud