diff options
author | Naveen Kumar P <naveenkumar.p@ittiam.com> | 2018-05-11 09:19:36 -0700 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2018-05-11 09:19:36 -0700 |
commit | 511083302d04d7408bf422d27f4aea6495029a07 (patch) | |
tree | 7e4a352d121b7fd5f606756f1e510cd753c42127 | |
parent | a9c46ad45e0c781c658ddf34fcb06a634be50b2a (diff) | |
parent | 4c942bb330aad19442106c7ca5438eef95c9de99 (diff) | |
download | libhevc-pie-dev.tar.gz |
[automerger] Return error for invalid st/lt sps parameters am: b93923e288 am: 797c104f3b am: 092cd28d04 am: 0e0458c8da am: 400d114e64 am: fa6d5fe71f am: 03831de632 am: 1a661cfc0e am: 8151a909f7 am: a9a51a4940 am: a4d67a58e8android-9.0.0_r16android-9.0.0_r12android-9.0.0_r11pie-qpr1-s1-releasepie-dr1-releasepie-dr1-devpie-dev
am: 4c942bb330
Change-Id: I45d117e62a4effacc1dbed0bc598d55deb8d2fae
-rw-r--r-- | common/ihevc_defs.h | 2 | ||||
-rw-r--r-- | decoder/ihevcd_parse_headers.c | 10 |
2 files changed, 9 insertions, 3 deletions
diff --git a/common/ihevc_defs.h b/common/ihevc_defs.h index 13b0239..1878f30 100644 --- a/common/ihevc_defs.h +++ b/common/ihevc_defs.h @@ -313,7 +313,7 @@ enum #define SPS_MAX_SUB_LAYERS 7 /* Maximum long term reference pics */ -#define MAX_LTREF_PICS_SPS 16 +#define MAX_LTREF_PICS_SPS 32 #define MAX_STREF_PICS_SPS 64 diff --git a/decoder/ihevcd_parse_headers.c b/decoder/ihevcd_parse_headers.c index d80bc47..6a02cbd 100644 --- a/decoder/ihevcd_parse_headers.c +++ b/decoder/ihevcd_parse_headers.c @@ -1558,10 +1558,12 @@ IHEVCD_ERROR_T ihevcd_parse_sps(codec_t *ps_codec) } UEV_PARSE("num_short_term_ref_pic_sets", value, ps_bitstrm); + if(value < 0 || value > MAX_STREF_PICS_SPS) + { + return IHEVCD_INVALID_PARAMETER; + } ps_sps->i1_num_short_term_ref_pic_sets = value; - ps_sps->i1_num_short_term_ref_pic_sets = CLIP3(ps_sps->i1_num_short_term_ref_pic_sets, 0, MAX_STREF_PICS_SPS); - for(i = 0; i < ps_sps->i1_num_short_term_ref_pic_sets; i++) ihevcd_short_term_ref_pic_set(ps_bitstrm, &ps_sps->as_stref_picset[0], ps_sps->i1_num_short_term_ref_pic_sets, i, &ps_sps->as_stref_picset[i]); @@ -1571,6 +1573,10 @@ IHEVCD_ERROR_T ihevcd_parse_sps(codec_t *ps_codec) if(ps_sps->i1_long_term_ref_pics_present_flag) { UEV_PARSE("num_long_term_ref_pics_sps", value, ps_bitstrm); + if(value < 0 || value > MAX_LTREF_PICS_SPS) + { + return IHEVCD_INVALID_PARAMETER; + } ps_sps->i1_num_long_term_ref_pics_sps = value; for(i = 0; i < ps_sps->i1_num_long_term_ref_pics_sps; i++) |