libxaac/decoder
Sushanth Patil ed03681d52 Fix for heap buffer overflow in read_bits_buf
In ixheaacd_arith_decode(), ixheaacd_read_bidireciton()
was being called even when bitbuffer was exhausted which
in turn made cnt_bits and bit_pos more and more negative
which overflowed eventually and resulted in heap buffer
overlow. We also observed the variable "cumulative"
value to be zero even after reaching the end of bitbuffer
and this in turn lead to an infinte for loop
"for (lev = esc_nb = 0;;)" in ixheaacd_arth_decoding_level2()
as "cumulative" value would not be updated after reaching
end of bitbuffer.
As a fix , we return whenever "cumulative" value remains
zero even after bitbuffer is exhausted.

And this patch adds a check for (cnt_bits < 0) in
ixheaacd_bitbuffer.c and removes bitbuffer wrap around
in ixheaacd_read_bidirection().

Added cnt_bits > 25 check in ixheaacd_read_bits_buf() &
ixheaacd_show_bits_buf() as these functions cannot handle
read of more than 25 bits at a time.

Bug:123976878
Test: poc
Change-Id: I4ec729fddb859ddd0add0045532e20fbfffd2e5c
2019-05-02 12:02:08 -07:00
..
armv7 LDR changed to MOV instruction in armv8 and armv7 assemblies 2019-03-27 15:49:19 -07:00
armv8 LDR changed to MOV instruction in armv8 and armv7 assemblies 2019-03-27 15:49:19 -07:00
drc_src Merge changes from topic "b124323156" 2019-04-02 22:13:05 +00:00
generic Fixes for integer overflows in ixheaacd_qmf_dec_generic.c file 2019-04-04 21:16:17 +00:00
x86 Formatting changes 2018-06-07 16:52:19 -07:00
x86_64 Formatting changes 2018-06-07 16:52:19 -07:00
ixheaacd_aac_config.h Formatting changes 2018-06-07 16:52:19 -07:00
ixheaacd_aac_imdct.c Fix for integer overflow in ixheaacd_fft_15_ld dec function 2019-04-04 21:16:45 +00:00
ixheaacd_aac_imdct.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_aac_rom.c Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_aac_rom.h Fix for array bound overflows 2019-01-11 14:16:39 -08:00
ixheaacd_aac_tns.c Fix for integer overflows in tns filter related functions 2019-04-04 21:17:02 +00:00
ixheaacd_aacdec.h Initialize all allocated memory blocks to zero 2019-03-27 15:49:39 -07:00
ixheaacd_aacdecoder.c Fix for array out of bound access in aac decoding 2019-04-04 21:16:35 +00:00
ixheaacd_aacpluscheck.c Bit buffer error handling using setjmp and longjmp 2019-01-02 14:08:58 -08:00
ixheaacd_acelp_bitparse.c Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_acelp_com.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_acelp_decode.c Formatting changes 2018-06-07 16:52:19 -07:00
ixheaacd_acelp_info.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_acelp_mdct.c Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_acelp_tools.c Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_adts.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_adts_crc_check.c Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_adts_crc_check.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_api.c Merge changes from topic "b124323156" 2019-04-02 22:13:05 +00:00
ixheaacd_api_defs.h Sanitization fixes from new CTS tests 2018-05-25 11:35:52 -07:00
ixheaacd_apicmd_standards.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_arith_dec.c Fix for heap buffer overflow in read_bits_buf 2019-05-02 12:02:08 -07:00
ixheaacd_arith_dec.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_audioobjtypes.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_avq_dec.c Fix for addition overflow in voronoi_idx_dec 2019-03-21 15:28:09 -07:00
ixheaacd_avq_rom.c Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_basic_funcs.c Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_basic_funcs.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_basic_op.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_basic_ops.c Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_basic_ops.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_basic_ops16.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_basic_ops32.h Merge "Fix integer overflows in ixheaacd_harm_idx_zerotwo and ixheaacd_harm_idx_onethree" 2019-03-08 19:31:46 +00:00
ixheaacd_basic_ops40.h Use saturating arithmetic in rotated_gosset_mtx_dec 2018-11-13 15:58:59 -08:00
ixheaacd_basic_ops_arr.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_bit_extract.h Fix for un-initialized value in ixheaacd_acelp_alias_cnx 2018-11-25 15:50:42 -08:00
ixheaacd_bitbuffer.c Fix for heap buffer overflow in read_bits_buf 2019-05-02 12:02:08 -07:00
ixheaacd_bitbuffer.h Fix for heap-buffer-overflow in ixheaacd_aac_showbits_32 2019-02-22 18:28:54 -08:00
ixheaacd_block.c Fix for heap-buffer-overflow in ixheaacd_aac_showbits_32 2019-02-22 18:28:54 -08:00
ixheaacd_block.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_channel.c Merge "Fix for heap-buffer-overflow in ixheaacd_aac_showbits_32" 2019-03-08 14:57:21 +00:00
ixheaacd_channel.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_channelinfo.h Formatting changes 2018-06-07 16:52:19 -07:00
ixheaacd_cnst.h Fix for out of bound write memory access in xheaac 2018-09-10 23:19:24 +00:00
ixheaacd_common_initfuncs.c Fix for heap buffer overflow in read_bits_buf 2019-05-02 12:02:08 -07:00
ixheaacd_common_lpfuncs.c Fix for array out of bound in ixheaacd_dec_execute 2019-03-21 15:21:51 -07:00
ixheaacd_common_rom.c Sanitization fixes from new CTS tests 2018-05-25 11:35:52 -07:00
ixheaacd_common_rom.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_config.h Fix for oobw in ixheaacd_decode_init() 2018-11-29 16:30:14 -08:00
ixheaacd_constants.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_create.c Fix for Segmentation fault in ixheaacd_reset_acelp_data_fix func. 2019-04-10 12:56:52 -07:00
ixheaacd_create.h Sanitization fixes from new CTS tests 2018-05-25 11:35:52 -07:00
ixheaacd_dec_main.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_decode_main.c Fix for Segmentation fault in ixheaacd_reset_acelp_data_fix func. 2019-04-10 12:56:52 -07:00
ixheaacd_defines.h Fix for integer overflow in ixheaacd_decode_init() 2019-01-08 11:05:48 -08:00
ixheaacd_definitions.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_drc_data_struct.h Fix for array out of bound access in aac decoding 2019-04-04 21:16:35 +00:00
ixheaacd_drc_dec.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_drc_freq_dec.c Merge "Bit buffer error handling using setjmp and longjmp" 2019-01-04 23:12:23 +00:00
ixheaacd_dsp_fft32x32s.c Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_dsp_fft32x32s.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_env_calc.c Merge "Fix integer overflows in ixheaacd_harm_idx_zerotwo and ixheaacd_harm_idx_onethree" 2019-03-08 19:31:46 +00:00
ixheaacd_env_calc.h Mark two inline functions as static 2019-02-19 11:03:06 -08:00
ixheaacd_env_dec.c Fix for array bound overflows 2019-01-11 14:16:39 -08:00
ixheaacd_env_dec.h Fix for array bound overflows 2019-01-11 14:16:39 -08:00
ixheaacd_env_extr.c Bit buffer error handling using setjmp and longjmp 2019-01-02 14:08:58 -08:00
ixheaacd_env_extr.h Fix for crash in ixheaacd_esbr_synthesis_regrp 2018-12-21 09:30:36 -08:00
ixheaacd_env_extr_part.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_error_codes.h Sanitization fixes from new CTS tests 2018-05-25 11:35:52 -07:00
ixheaacd_error_handler.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_error_standards.h Fix for heap buffer overflow in aac showbit_32 function 2018-09-12 13:35:01 -07:00
ixheaacd_esbr_envcal.c Fix for array bound overflows 2019-01-11 14:16:39 -08:00
ixheaacd_esbr_fft.c Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_esbr_polyphase.c Fix for stack corruption in esbr 2018-07-12 23:36:28 +00:00
ixheaacd_esbr_rom.c Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_esbr_rom.h Fix for array bound overflows 2019-01-11 14:16:39 -08:00
ixheaacd_ext_ch_ele.c Fix for crash in ixheaacd_filter_and_add 2019-01-17 14:36:09 -08:00
ixheaacd_fft.c Fixes for integer overflows in ixheaacd_fft.c file. 2019-03-09 08:17:00 -08:00
ixheaacd_freq_sca.c Formatting changes 2018-06-07 16:52:19 -07:00
ixheaacd_freq_sca.h Sanitization fixes from new CTS tests 2018-05-25 11:35:52 -07:00
ixheaacd_func_def.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_function_selector.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_fwd_alias_cnx.c Formatting changes 2018-06-07 16:52:19 -07:00
ixheaacd_hbe_trans.c Fix for OOB write in ixheaacd_real_synth_filt. 2019-02-22 18:51:11 -08:00
ixheaacd_hcr.h Sanitization fixes from new CTS tests 2018-05-25 11:35:52 -07:00
ixheaacd_headerdecode.c Fix for array out of bound in ixheaacd_dec_execute 2019-03-21 15:21:51 -07:00
ixheaacd_headerdecode.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_huff_code_reorder.c Merge "Fix for heap-buffer-overflow in ixheaacd_aac_showbits_32" 2019-03-08 14:57:21 +00:00
ixheaacd_huff_tools.c Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_hufftables.c Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_hybrid.c Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_hybrid.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_imdct.c Fix for integer overflow in ixheaacd_cal_fac_data 2019-02-01 11:20:25 -08:00
ixheaacd_info.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_init_config.c Fix for integer overflow in ixheaacd_decode_init() 2019-01-08 11:05:48 -08:00
ixheaacd_initfuncs.c Changes based on review comments 2018-07-03 11:21:47 -07:00
ixheaacd_interface.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_intrinsics.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_latmdemux.c Fix for Heap buffer overflow in read bit buffer for latm stream 2019-03-16 16:02:47 -07:00
ixheaacd_latmdemux.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_longblock.c Fix for heap-buffer-overflow in ixheaacd_aac_showbits_32 2019-02-22 18:28:54 -08:00
ixheaacd_lpc.c Fix for out of bound access in lpd decode function 2019-04-04 21:15:57 +00:00
ixheaacd_lpc_dec.c Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_lpfuncs.c Fix for crash in ixheaacd_lt_prediction 2018-11-23 15:35:29 -08:00
ixheaacd_lpp_tran.c Sanitization fixes from new CTS tests 2018-05-25 11:35:52 -07:00
ixheaacd_lpp_tran.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_lt_predict.c Fix for crash in ixheaacd_lt_prediction 2018-11-23 15:35:29 -08:00
ixheaacd_lt_predict.h Fix for global buffer overflow in lt prediction function. 2018-11-18 11:04:35 -08:00
ixheaacd_main.h Fix for global buffer overflow in ixheaacd_tns_apply 2018-10-22 18:45:39 -07:00
ixheaacd_memory_standards.h Sanitization fixes from new CTS tests 2018-05-25 11:35:52 -07:00
ixheaacd_mps_dec.c Fix for Segmentation fault in ixheaacd_sbr_dec_from_mps 2018-11-27 23:22:45 +00:00
ixheaacd_mps_dec.h Fix for Segmentation fault in ixheaacd_sbr_dec_from_mps 2018-11-27 23:22:45 +00:00
ixheaacd_mps_decor.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_mps_decorr.c Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_mps_huff_tab.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_mps_hybfilter.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_mps_hybrid_filt.c Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_mps_interface.h Fix for Segmentation fault in ixheaacd_mps_apply_pre_matrix 2018-10-30 14:56:10 -07:00
ixheaacd_mps_nlc_dec.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_mps_parse.c Merge "Fix for oobw in ixheaacd_decode_init()" 2019-01-07 19:30:14 +00:00
ixheaacd_mps_poly_filt.c Fix for Segmentation fault in ixheaacd_sbr_dec_from_mps 2018-11-27 23:22:45 +00:00
ixheaacd_mps_polyphase.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_mps_pre_mix.c Fix for Segmentation fault in ixheaacd_sbr_dec_from_mps 2018-11-27 23:22:45 +00:00
ixheaacd_mps_process.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_mps_rom.c Fix for OOB access due to icc index parsing 2018-09-18 15:18:24 -07:00
ixheaacd_mps_smoothing.c Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_mps_temp_process.c Formatting changes 2018-06-07 16:52:19 -07:00
ixheaacd_mps_temp_reshape.c Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_multichannel.c Merge "Fix for array out of bound access in multichannel.c file" 2019-03-09 04:32:25 +00:00
ixheaacd_multichannel.h Fix for array out of bound access in multichannel.c file 2019-03-01 17:56:08 -08:00
ixheaacd_pns.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_pns_js_thumb.c Fix for heap buffer overflow in tns block 2018-10-11 16:51:32 -07:00
ixheaacd_pred_vec_block.c Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_process.c Fix for array bound overflows 2019-01-11 14:16:39 -08:00
ixheaacd_process.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_ps_bitdec.c Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_ps_bitdec.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_ps_dec.c Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_ps_dec.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_pulsedata.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_pvc_dec.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_pvc_rom.c Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_pvc_rom.h Sanitization fixes from new CTS tests 2018-05-25 11:35:52 -07:00
ixheaacd_qmf_dec.c Fixes for integer overflow at many places in ixheaacd_qmf_dec.c file 2019-02-24 20:05:49 -08:00
ixheaacd_qmf_dec.h Formatting changes 2018-06-07 16:52:19 -07:00
ixheaacd_qmf_poly.h Fix for stack corruption in esbr 2018-07-12 23:36:28 +00:00
ixheaacd_rev_vlc.c Fix for crash in ixheaacd_rvlc_dec 2019-01-11 10:40:28 -08:00
ixheaacd_rom.c Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_rvlc.h Fix for heap buffer overflow in huff code reorder 2018-09-18 13:05:13 -07:00
ixheaacd_sbr_common.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_sbr_const.h Fix for Global buffer overflow in ixheaacd_extract_frame_info_ld 2018-12-22 06:57:22 -08:00
ixheaacd_sbr_crc.c Fix for uninitialized bit buffer variables 2019-01-03 15:46:18 -08:00
ixheaacd_sbr_crc.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_sbr_dec.c Fix for xaacdec running in infinite loop in hbe_repl_spec func. 2019-03-19 09:15:22 -07:00
ixheaacd_sbr_dec.h Merge "Fix for few uninitialized accesses" 2019-01-07 19:32:27 +00:00
ixheaacd_sbr_payload.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_sbr_rom.c Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_sbr_rom.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_sbr_scale.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_sbrdec_initfuncs.c Fix for OOB write in ixheaacd_real_synth_filt. 2019-02-22 18:51:11 -08:00
ixheaacd_sbrdec_lpfuncs.c Fix for stack-buffer-overflow in ixheaacd_generate_hf 2019-01-31 17:23:34 -08:00
ixheaacd_sbrdecoder.c Fix for array bound overflows 2019-01-11 14:16:39 -08:00
ixheaacd_sbrdecoder.h Fix for array bound overflows 2019-01-11 14:16:39 -08:00
ixheaacd_sbrdecsettings.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_sbrqmftrans.h Fix for OOB write in ixheaacd_real_synth_filt. 2019-02-22 18:51:11 -08:00
ixheaacd_spectrum_dec.c Fix for heap-buffer-overflow in ixheaacd_aac_showbits_32 2019-02-22 18:28:54 -08:00
ixheaacd_stereo.c Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_stereo.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_struct.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_struct_def.h Fix for Segmentation fault in ixheaacd_reset_acelp_data_fix func. 2019-04-10 12:56:52 -07:00
ixheaacd_tcx_fwd_alcnx.c Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_tcx_fwd_mdct.c Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_td_mdct.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_thumb_ps_dec.c Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_tns.c Fix for global buffer overflow in ixheaacd_tns_apply 2018-10-22 18:45:39 -07:00
ixheaacd_tns.h Formatting changes 2018-06-07 16:52:19 -07:00
ixheaacd_tns_usac.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_type_def.h Fix for heap buffer overflow in aac showbit_32 function 2018-09-12 13:35:01 -07:00
ixheaacd_vec_baisc_ops.h Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_ver_number.h Collected Cleanups from Ittiam 2018-06-05 13:04:22 -07:00
ixheaacd_Windowing.c Bring xHE-AAC into pi-dev branch 2018-05-17 14:36:48 -07:00
ixheaacd_windows.h Sanitization fixes from new CTS tests 2018-05-25 11:35:52 -07:00