webrtc/modules/audio_coding/codecs/ilbc
Sam Zackrisson ae93f0412a Make an energy computation not overflow in iLBC PLC
The current implementation carefully shifts down the energy so as not to overflow.
The fuzzer audio_decoder_ilbc_fuzzer found an integer overflow anyway.
The energy is only used for a threshold check.

This fix stops the energy computation when the threshold is reached, before it can overflow.

Bug: chromium:837922
Change-Id: I45e84d2d271a37e6476b08433a2cbd5a8f6e6f26
Reviewed-on: https://webrtc-review.googlesource.com/76122
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23242}
2018-05-15 13:01:42 +00:00
..
test Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
abs_quant.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
abs_quant.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
abs_quant_loop.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
abs_quant_loop.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
audio_decoder_ilbc.cc Stop using LOG macros in favor of RTC_ prefixed macros. 2017-11-09 11:56:32 +00:00
audio_decoder_ilbc.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
audio_encoder_ilbc.cc Move some numeric utility code from rtc_base/ to rtc_base/numerics/ 2017-11-22 11:21:47 +00:00
audio_encoder_ilbc.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
augmented_cb_corr.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
augmented_cb_corr.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
bw_expand.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
bw_expand.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
cb_construct.c "Fix" signed integer overflow in old code 2018-04-26 13:38:57 +00:00
cb_construct.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
cb_mem_energy.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
cb_mem_energy.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
cb_mem_energy_augmentation.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
cb_mem_energy_augmentation.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
cb_mem_energy_calc.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
cb_mem_energy_calc.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
cb_search.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
cb_search.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
cb_search_core.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
cb_search_core.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
cb_update_best_index.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
cb_update_best_index.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
chebyshev.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
chebyshev.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
comp_corr.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
comp_corr.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
complexityMeasures.m Moving src/webrtc into src/. 2017-09-15 04:25:06 +00:00
constants.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
constants.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
create_augmented_vec.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
create_augmented_vec.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
decode.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
decode.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
decode_residual.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
decode_residual.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
decoder_interpolate_lsf.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
decoder_interpolate_lsf.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
defines.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
do_plc.c Make an energy computation not overflow in iLBC PLC 2018-05-15 13:01:42 +00:00
do_plc.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
encode.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
encode.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
energy_inverse.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
energy_inverse.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
enh_upsample.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
enh_upsample.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
enhancer.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
enhancer.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
enhancer_interface.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
enhancer_interface.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
filtered_cb_vecs.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
filtered_cb_vecs.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
frame_classify.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
frame_classify.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
gain_dequant.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
gain_dequant.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
gain_quant.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
gain_quant.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
get_cd_vec.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
get_cd_vec.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
get_lsp_poly.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
get_lsp_poly.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
get_sync_seq.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
get_sync_seq.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
hp_input.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
hp_input.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
hp_output.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
hp_output.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
ilbc.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
ilbc.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
ilbc_unittest.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
index_conv_dec.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
index_conv_dec.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
index_conv_enc.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
index_conv_enc.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
init_decode.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
init_decode.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
init_encode.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
init_encode.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
interpolate.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
interpolate.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
interpolate_samples.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
interpolate_samples.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
lpc_encode.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
lpc_encode.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
lsf_check.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
lsf_check.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
lsf_interpolate_to_poly_dec.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
lsf_interpolate_to_poly_dec.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
lsf_interpolate_to_poly_enc.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
lsf_interpolate_to_poly_enc.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
lsf_to_lsp.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
lsf_to_lsp.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
lsf_to_poly.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
lsf_to_poly.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
lsp_to_lsf.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
lsp_to_lsf.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
my_corr.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
my_corr.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
nearest_neighbor.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
nearest_neighbor.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
pack_bits.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
pack_bits.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
poly_to_lsf.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
poly_to_lsf.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
poly_to_lsp.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
poly_to_lsp.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
refiner.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
refiner.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
simple_interpolate_lsf.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
simple_interpolate_lsf.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
simple_lpc_analysis.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
simple_lpc_analysis.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
simple_lsf_dequant.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
simple_lsf_dequant.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
simple_lsf_quant.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
simple_lsf_quant.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
smooth.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
smooth.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
smooth_out_data.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
smooth_out_data.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
sort_sq.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
sort_sq.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
split_vq.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
split_vq.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
state_construct.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
state_construct.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
state_search.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
state_search.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
swap_bytes.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
swap_bytes.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
unpack_bits.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
unpack_bits.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
vq3.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
vq3.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
vq4.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
vq4.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
window32_w32.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
window32_w32.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
xcorr_coef.c Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00
xcorr_coef.h Using fully qualified #include paths in ilbc code. 2018-02-02 13:28:13 +00:00