aboutsummaryrefslogtreecommitdiff
path: root/decoder
diff options
context:
space:
mode:
authorAndroid Build Merger (Role) <noreply-android-build-merger@google.com>2018-04-20 21:13:39 +0000
committerAndroid Build Merger (Role) <noreply-android-build-merger@google.com>2018-04-20 21:13:39 +0000
commitfa6d5fe71f278dfe7eadbb2197c2ac6a234feafd (patch)
treecea674c5294e6f0b72656190774cb4c0a75fed56 /decoder
parent08e9bcd2e8f75965edc5f099d4c35731abbaa8c1 (diff)
parent400d114e64893f8d27fd72a7f9b10f41c7c1cda8 (diff)
downloadlibhevc-fa6d5fe71f278dfe7eadbb2197c2ac6a234feafd.tar.gz
[automerger] Return error for invalid st/lt sps parameters am: b93923e288 am: 797c104f3b am: 092cd28d04 am: 0e0458c8da am: 400d114e64
Change-Id: I492074238997f2ce090e3f579282578f6795779c
Diffstat (limited to 'decoder')
-rw-r--r--decoder/ihevcd_parse_headers.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/decoder/ihevcd_parse_headers.c b/decoder/ihevcd_parse_headers.c
index 128b780..427261c 100644
--- a/decoder/ihevcd_parse_headers.c
+++ b/decoder/ihevcd_parse_headers.c
@@ -1480,10 +1480,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]);
@@ -1493,6 +1495,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++)