webrtc/modules
Sam Zackrisson 184da528a7 Fix ASAN bug in iSAC codec
There is a value missing in an array, causing indexing to sometimes be off by one.
The result is never used anyway, so the "solution" is to insert an extra zero at the end.

Details:

In an old refactoring CL, the corresponding array in the floating point version of iSAC is declared with 578 elements, the fixed point version has 577.
See WebRtcIsac_kQKltCodeLenShape:
https://webrtc-codereview.appspot.com/548004/patch/10002/11005
Perhaps the entire array was not carried over to fixed point.

However, the floating point version does not actually have 578 elements in its definition, it has 568. The remaining 10 elements are initialized to 0. So there is no value to use from there, and using a zero instead will mimic the behavior of the floating point code.


Use of the value:
WebRtcIsacfix_kCodeLenShapeQ11 is only accessed in one place [0].
The value sumQQ is set to is only used to compute the BitsQQ,
which is only used to populate the sizeQ11 param of EstCodeLpcCoef,
which is never used anywhere. Not within EstCodeLpcCoef, not within the calling function WebRtcIsacfix_EncodeLpc [1], not in the calling function's calling function [2]. Then it falls out of scope.

[0] https://cs.chromium.org/chromium/src/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/entropy_coding.c?l=1223&rcl=3c4fda2ed8140a330634c0a2704a3cf0311a89de
[1] https://cs.chromium.org/chromium/src/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/entropy_coding.c?l=1468&rcl=3c4fda2ed8140a330634c0a2704a3cf0311a89de
[2] https://cs.chromium.org/chromium/src/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/encode.c?l=214&rcl=3c4fda2ed8140a330634c0a2704a3cf0311a89de

Tested: Instructions in linked bug. No longer repro after applying this CL.
Bug: webrtc:10584
Change-Id: I87a90e8cf58d82f615217e05ea401d3259887769
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161942
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30065}
2019-12-11 15:59:14 +00:00
..
audio_coding Fix ASAN bug in iSAC codec 2019-12-11 15:59:14 +00:00
audio_device Remove unnecessary checks from AudioDeviceWindowsCore::CoreAudioIsSupported 2019-12-06 10:09:03 +00:00
audio_mixer Add directive to make webrtc metrics optional. 2019-12-09 13:55:50 +00:00
audio_processing Move audioproc_f to rtc_tools. 2019-12-10 12:08:56 +00:00
congestion_controller Revert "Ensure loss-based controller is always enabled." 2019-12-11 14:09:20 +00:00
desktop_capture Revert "Reland "Reland "Implemented screen enumeration and selection for desktop capture under X11 using the X Resize and Rotate extension version 1.5.""" 2019-12-09 11:26:20 +00:00
include Cleanup includes in modules/include/module_common_types.h 2019-10-07 16:06:26 +00:00
pacing TimeController: Rename Sleep to AdvanceTime. 2019-12-03 16:08:54 +00:00
remote_bitrate_estimator Apply network estimate by default. 2019-12-05 17:09:56 +00:00
rtp_rtcp Migrate tests from RtpDepacketizer to VideoRtpDepacketizer interface 2019-12-10 17:37:46 +00:00
third_party Use source_sets in component builds and static_library in release builds. 2019-10-17 21:17:18 +00:00
utility Remove line number from rtc::Location 2019-12-03 19:43:12 +00:00
video_capture Migrate WebRTC on FrameGeneratorInterface and remove FrameGenerator class 2019-12-07 00:54:26 +00:00
video_coding Add directive to make webrtc metrics optional. 2019-12-09 13:55:50 +00:00
video_processing Migrate WebRTC on FrameGeneratorInterface and remove FrameGenerator class 2019-12-07 00:54:26 +00:00
BUILD.gn Reland "Refactoring of the noise suppressor and adding true multichannel support" 2019-10-31 11:56:01 +00:00
module_common_types_unittest.cc [Cleanup] Add missing #include. Remove useless ones. IWYU part 2. 2018-11-28 18:25:07 +00:00
OWNERS Moving src/webrtc into src/. 2017-09-15 04:25:06 +00:00