commit | 184da528a739e270baf3ca866409f8e0c7d77a6f | [log] [tgz] |
---|---|---|
author | Sam Zackrisson <saza@webrtc.org> | Wed Dec 11 14:39:59 2019 |
committer | Commit Bot <commit-bot@chromium.org> | Wed Dec 11 15:59:14 2019 |
tree | 149b9fa2c65b53bdd2158195efb658a5162013b9 | |
parent | 75bc75ccef59caeeeecdeac83426565efddb6780 [diff] |
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}
WebRTC is a free, open software project that provides browsers and mobile applications with Real-Time Communications (RTC) capabilities via simple APIs. The WebRTC components have been optimized to best serve this purpose.
Our mission: To enable rich, high-quality RTC applications to be developed for the browser, mobile platforms, and IoT devices, and allow them all to communicate via a common set of protocols.
The WebRTC initiative is a project supported by Google, Mozilla and Opera, amongst others.
See http://www.webrtc.org/native-code/development for instructions on how to get started developing with the native code.
Authoritative list of directories that contain the native API header files.