Commit graph

533 commits

Author SHA1 Message Date
TreeHugger Robot
4cbdac93d2 Merge "Fix for segmentation fault in read spectral data" 2019-01-07 18:34:14 +00:00
TreeHugger Robot
f6bf43db8f Merge "Fix for crash in ixheaacd_decode_init" 2019-01-07 18:22:03 +00:00
TreeHugger Robot
7ec9d127e7 Merge "Fix for global buffer overflow in impd_init_loudness_control function" 2019-01-07 17:55:21 +00:00
TreeHugger Robot
cea2548155 Merge "Fix for global buffer over flow in error handler." 2019-01-07 17:49:47 +00:00
TreeHugger Robot
c1c9021f5c Merge "Fix for heap buffer overflow in ixheaacd_aac_read_2bytes" 2019-01-07 17:49:02 +00:00
TreeHugger Robot
4a6e2011a8 Merge "Fix for addition overflow in ixheaacd_shr32_drc" 2019-01-07 03:00:43 +00:00
TreeHugger Robot
c7e444dad2 Merge "Fix for parsing erroneous Program Config Element" 2019-01-05 01:13:39 +00:00
Ray Essick
7ead99042a Merge "Bit buffer error handling using setjmp and longjmp" 2019-01-04 23:12:23 +00:00
Ramesh Katuri
7639b651b2 Fix for addition overflow in ixheaacd_shr32_drc
Addition overflow was observed in function ixheaacd_shr32_drc.
After fixing this issue we observed an infinite loop in
ixheaacd_reset_hf_generator(), which is fixed in the current CL

Bug:118388357
Test: vendor + poc
Change-Id: I95ebac387057e170763e230fc081a2bb57312ebd
2019-01-04 10:13:49 -08:00
TreeHugger Robot
8b11755f03 Merge "Fix for stack buffer over flow in ixheaacd_lpd_bpf_fix function" 2019-01-04 03:54:02 +00:00
TreeHugger Robot
98b3146396 Merge "Fix for uninitialized bit buffer variables" 2019-01-04 02:00:36 +00:00
Ramesh Katuri
e862c5ddc5 Fix for uninitialized bit buffer variables
Bug:118355146
Test: vendor
Change-Id: I22c5019989036354360687265c758fd86fa26ddc
2019-01-03 15:46:18 -08:00
Ramesh Katuri
105f9b7fa4 Fix for stack buffer over flow in ixheaacd_lpd_bpf_fix function
Bug:118138797
Test: vendor + poc
Change-Id: I2822d3a74a9b21817dc37b8f54ccba8c09d7e0dc
2019-01-03 15:35:55 -08:00
Ray Essick
69b0c9364d Merge "Fix for crash in ixheaacd_esbr_synthesis_regrp" into pi-dev am: c9062c1c4d
am: e31d1f37c9

Change-Id: Ia51c53bedb43fdf247173545fdb56b1b453786d6
2019-01-02 19:42:38 -08:00
Ray Essick
174165dd89 Merge "Fix for oobw in impd_parse_drc_instructions_uni_drc()" into pi-dev am: e0c41aae88
am: f462745e36

Change-Id: I48e9385dcb919b7777545aee8a04960d2461f6e9
2019-01-02 19:42:25 -08:00
Ray Essick
c9062c1c4d Merge "Fix for crash in ixheaacd_esbr_synthesis_regrp" into pi-dev 2019-01-03 03:26:10 +00:00
Ray Essick
e0c41aae88 Merge "Fix for oobw in impd_parse_drc_instructions_uni_drc()" into pi-dev 2019-01-03 03:23:27 +00:00
TreeHugger Robot
ff5e428265 Merge "Use saturating arithmetic in rotated_gosset_mtx_dec" 2019-01-03 02:19:20 +00:00
Ramesh Katuri
eb95e08c41 Merge "Fix for crash due to negative size passed to memcpy" into pi-dev am: a9f6ff8ccc
am: 1e5a543f1f

Change-Id: I0c6f6cbeeeb8877b61d57526c8c08dc67c6c03cd
2019-01-02 14:31:01 -08:00
TreeHugger Robot
a9f6ff8ccc Merge "Fix for crash due to negative size passed to memcpy" into pi-dev 2019-01-02 22:10:34 +00:00
Ramesh Katuri
e988b01822 Bit buffer error handling using setjmp and longjmp
Bug: 112552816
Bug: 116774502
Bug: 117531281
Bug: 118145923
Bug: 120124041
Test: vendor
Change-Id: Ib11c82a8cf728c8a0a841b5fc0452daa1a5b37be
2019-01-02 14:08:58 -08:00
Ray Essick
ff358cfa4e Merge "Fix for oobw in impd_dec_slopes in DRC dynamic payload" into pi-dev am: 622f724911
am: 6c7bac4af8

Change-Id: Ieea4955c915f84e7c150e6427d785bf78f287741
2019-01-02 12:16:53 -08:00
Ramesh Katuri
015d135f65 Fix for stack buffer overflow in ixheaacd_latm_stream_mux_config am: 2e513342a1
am: f4b31cc0cf

Change-Id: I625b419eeca9a88d0e9d7eff4d03450fa6bb8cea
2019-01-02 12:08:35 -08:00
Ray Essick
622f724911 Merge "Fix for oobw in impd_dec_slopes in DRC dynamic payload" into pi-dev 2019-01-02 19:38:40 +00:00
Ramesh Katuri
541335d37c Fix for segmentation fault in latmGetValue
Bug:117610049
Test: poc
Change-Id: I1361f7e8228561d135a26e9867221f8a8333e6b3
2019-01-02 11:02:51 -08:00
Rajat Kumar
1453c9d50a Fix for integer overflow in xaacdec test bench
p_obj_exhaacplus_dec->aac_config.ui_n_channels and
p_obj_exhaacplus_dec->aac_config.i_channel_mask initialized
to default values in pre config to avoid propagation of
uninitialized values in erroneous cases.

Bug:119798143
Test: poc
Change-Id: I757359818b0dbbf98c94551e4e54ed7e4d7c206a
2019-01-02 11:02:39 -08:00
TreeHugger Robot
e6d51f6bf3 Merge "Fix for files with unsupported AOT in the first frame" 2018-12-29 14:44:12 +00:00
TreeHugger Robot
00e3408f15 Merge "Fix for segmentation fault in ixheaacd_dec_execute" 2018-12-29 00:03:41 +00:00
TreeHugger Robot
67f9744ec7 Merge "Fix for oobw in impd_drc_parse_coeff() due to gain_seq_idx" 2018-12-29 00:02:11 +00:00
TreeHugger Robot
c5557262fb Merge "Fix for multiply overflow in coupling channel element decoding" 2018-12-28 23:11:49 +00:00
TreeHugger Robot
c27192a5bb Merge "Fix for use of uninitialized variable in ixheaacd_read_block_data." 2018-12-28 23:11:47 +00:00
TreeHugger Robot
300eb8e9e3 Merge "Fix for Use of uninitialized value in ixheaacd_mps_mapindexdata" 2018-12-28 23:11:00 +00:00
TreeHugger Robot
725e48df07 Merge "Fix for Use of uninitialized value in ixheaacd_fd_channel_stream." 2018-12-28 23:10:28 +00:00
TreeHugger Robot
024727c93e Merge "Fix for Global buffer overflow in ixheaacd_extract_frame_info_ld" 2018-12-28 23:10:11 +00:00
TreeHugger Robot
039a5f8a1a Merge "Fix for Heap buffer overflow in main process function" 2018-12-28 23:08:44 +00:00
Ramesh Katuri
f7144dfe8f Fix for oobr in impd_manage_drc_complexity function
bs_gain_set_idx is a 6 bit field read from bitstream, which is used
to access gain_set_index_for_channel_group[] whose size is GAIN_SET_COUNT_MAX
which is 24.bs_gain_set_idx value greater than 23 is causing oob access.

As fix for this issue bound check is added for bs_gain_set_idx

Bug:119263784
Test: vendor
Change-Id: I26d3668c54a739016c1102158c73db49cb35f1c4
2018-12-28 11:45:54 -08:00
Ramesh Katuri
e32f2f97cd Fix for Use of uninitialized value in ixheaacd_fd_channel_stream.
valgrind has reported usage of un-initialized variable for elements
of structure pstr_core_coder.

As a fix initialized the structure with memset.

Bug:118492594
Test: vendor
Change-Id: If1ce7f04ae03b58f44b9b551cab2461349e48394
2018-12-28 10:22:04 -08:00
Ramesh Katuri
7513c8b52a Fix for Use of uninitialized value in ixheaacd_mps_mapindexdata
valgrind has reported usage of un-initialized variable,interpolate_local
in,ixheaacd_mps_mapindexdata().

As a fix interpolate_local variable is initialized to zero

Bug:118492282
Test: vendor
Change-Id: I741fa634a4f0481b59acbbb88b4cd7a44200bed6
2018-12-28 10:15:50 -08:00
Rajat Kumar
ee90aac01b Fix for Heap buffer overflow in main process function
Initialized num_ch to zero and moved num_ch update outside
if (skip_full_decode == 0) condition to avoid propagation
of uninitialized or wrong num_ch for all cases.

Bug:120590841
Test: vendor, poc
Change-Id: I8aca82be8a20689547a2b85f8f3a06700b9927d2
2018-12-28 09:44:41 -08:00
Rajat Kumar
fa41125141 Fix for Global buffer overflow in ixheaacd_extract_frame_info_ld
adds a bounds check.

Bug:120250878
Test: vendor
Change-Id: I7760f81bd90f2901ae5fa61a850298d216909592
2018-12-22 06:57:22 -08:00
Ramesh Katuri
b17f1b007f Fix for segmentation fault in ixheaacd_dec_execute
ixheaacd_aac_decoder_init() is called inside ixheaacd_dec_execute().
ixheaacd_aac_decoder_init() will return NULL pointer in failure case and
pointer to aac decoder structure in successful case.

After this function NULL pointer check before de-referencing is missing
which is causing segmentation fault.

As a fix NULL pointer check is added

Bug:118615735
Test: vendor
Change-Id: I0e9a22e0f97dc99c238a026bf0fd693c3e93e4e7
2018-12-22 05:58:47 -08:00
Ramesh Katuri
cd952cc64e Fix for multiply overflow in coupling channel element decoding
The numbers stored in the table
common_tables_ptr->cc_gain_scale are multiplied with itself,
((-norm_value) - 1) times and stored in ind_channel_info->cc_gain.
Since the number stored in common_tables_ptr->cc_gain_scale
has a q factor of 29, the result is right shifted by 29 to maintain
the same q factor.

Bug:112705155
Test: vendor
Change-Id: I94199d172e4d3ad511dbae3a49d76f8e440fe724
2018-12-22 05:57:51 -08:00
Tripti Tiwari
34f516c4c8 Fix for use of uninitialized variable in ixheaacd_read_block_data.
Valgrind has reported use of uninitialized variable in
ixheaacd_read_block_data, which is caused due to uninitialized
api object.

As fix, initialized the api object.

Bug:118615735.
Test: vendor
Change-Id: Ib2702eac2c2f659589ce7616a9818913879ff3de
2018-12-22 05:57:18 -08:00
Tripti Tiwari
71c5edac0b Fix for few uninitialized accesses
Valgrind had reported use of uninitialized variables, ref_fwd in
ixheaacd_bi_dir_est_lower_scf_cur_frame, in
ixheaacd_process_win_seq due to uninitialized scratch memory and
for p_arr_qmf_buf_real in ixheaacd_sbr_dec.

As a fix, initialized the local variables and all malloc memories.

Bug:118615501
Test: vendor
Change-Id: I37c941aad42cdeadba4663ff1f9959e98a9f6c8a
2018-12-22 05:53:38 -08:00
Ramesh Katuri
ed831abc65 Fix for oobw in impd_parse_drc_instructions_uni_drc()
gain_set_index_for_channel_group[] is any array of size
CHANNEL_GROUP_COUNT_MAX i.e 24. This array is accessed using
str_drc_instruction_str->num_drc_ch_groups as index, whose
value can be more than 24.

Bound check is added for str_drc_instruction_str->num_drc_ch_groups
before accessing gain_set_index_for_channel_group[]

Bug:117832864
Test: vendor
Change-Id: I3799c2de6926f1193a5e0193bc3b5863c478d4ab
2018-12-21 10:59:49 -08:00
Ramesh Katuri
56a2e1e9c6 Fix for oobw in impd_dec_slopes in DRC dynamic payload
Bug:118143575
Test: vendor
Change-Id: I35940099dc804a96a5790bf8e8b29df049838a17
2018-12-21 10:43:09 -08:00
Ramesh Katuri
2e513342a1 Fix for stack buffer overflow in ixheaacd_latm_stream_mux_config
Bug:118149009
Test: vendor
Change-Id: I16213a2db36e9d678f7105edda9a4a6c17a3f8a6
2018-12-21 10:27:29 -08:00
Ramesh Katuri
a516b49570 Fix for oobw in impd_drc_parse_coeff() due to gain_seq_idx
gain_seq_idx is a 6 bit value read from the bit stream.
it can get any value between 0 to 63. gain_seq_idx is used
to access gain_set_params_index_for_gain_sequence[] array
whose size is SEQUENCE_COUNT_MAX which is 24. if gain_seq_idx
value is greater than or equal to SEQUENCE_COUNT_MAX cause
oob write.

Bound check on gain_seq_idx is added to prevent oob access.

Bug:119117381
Test: vendor
Change-Id: I571e6e705489ae1c46c651f87491f15428719b30
2018-12-21 10:11:38 -08:00
Ramesh Katuri
b0c549e5d8 Fix for crash in ixheaacd_esbr_synthesis_regrp
Inside ia_sbr_frame_info_data_struct, limit table is defined as WORD32 lim_table[4][12 + 1];
lim_table is accessed using gate_mode which is defined as WORD32 gate_mode[4];
For all these below issues one of the value of gate_mode is greater than 12, when lim_table
is accessed with more than 12 we are getting some garbage value which is causing pointer
corruption for b/118386824, Heap buffer overflow for b/118389774 and stack buffer overflow
for b/118494588.

As a fix we are returning fatal error if value in gate_mode > 12

Bug:118386824
Bug:118389774
Bug:118494588
Test: vendor
Change-Id: I713c5438f56a13f06f0f76ed22ad96ff667741a4
2018-12-21 09:30:36 -08:00
Ramesh Katuri
97fb283165 Fix for oobw in ixheaacd_decode_init()
seed_value[] is an array of size MAX_NUM_CHANNELS which is 6.
seed_value is accessed using number of channels in the stream.
For the given input number of channels are more than six,which
is causing OOB write.

As fix, check has been added based on number of channels.As
we support only stereo in USAC, we are returning error if
stream contains more than 2 channels.

Bug:119118558
Test: vendor
Change-Id: I3187b0eae0f802ddb82cdc07a9eec1b5910607b4
2018-11-29 16:30:14 -08:00