Add missing return check for short_term_ref_pic_set()
Bug: 129401104
Bug: 130025324
Test: vendor
Change-Id: I685dd29ec13cca0ced5de8eb3aea1d0da5952a62
(cherry picked from commit 299cceb9e492c62039a6b5780b3efdd093be1c3b)
diff --git a/decoder/ihevcd_parse_headers.c b/decoder/ihevcd_parse_headers.c
index 3f67998..c7e147d 100644
--- a/decoder/ihevcd_parse_headers.c
+++ b/decoder/ihevcd_parse_headers.c
@@ -1565,7 +1565,13 @@
ps_sps->i1_num_short_term_ref_pic_sets = value;
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]);
+ {
+ ret = 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]);
+ if (ret != IHEVCD_SUCCESS)
+ {
+ return ret;
+ }
+ }
BITS_PARSE("long_term_ref_pics_present_flag", value, ps_bitstrm, 1);
ps_sps->i1_long_term_ref_pics_present_flag = value;
diff --git a/decoder/ihevcd_parse_slice_header.c b/decoder/ihevcd_parse_slice_header.c
index 70998f7..2ef174c 100644
--- a/decoder/ihevcd_parse_slice_header.c
+++ b/decoder/ihevcd_parse_slice_header.c
@@ -436,12 +436,15 @@
}
else
{
- ihevcd_short_term_ref_pic_set(ps_bitstrm,
- &ps_sps->as_stref_picset[0],
- ps_sps->i1_num_short_term_ref_pic_sets,
- ps_sps->i1_num_short_term_ref_pic_sets,
- &ps_slice_hdr->s_stref_picset);
-
+ ret = ihevcd_short_term_ref_pic_set(ps_bitstrm,
+ &ps_sps->as_stref_picset[0],
+ ps_sps->i1_num_short_term_ref_pic_sets,
+ ps_sps->i1_num_short_term_ref_pic_sets,
+ &ps_slice_hdr->s_stref_picset);
+ if (ret != IHEVCD_SUCCESS)
+ {
+ return ret;
+ }
st_rps_idx = ps_sps->i1_num_short_term_ref_pic_sets;
num_neg_pics = ps_slice_hdr->s_stref_picset.i1_num_neg_pics;
num_pos_pics = ps_slice_hdr->s_stref_picset.i1_num_pos_pics;