From bd92d8dd2a593dd96d5289b4f9cfed08fabf611f Mon Sep 17 00:00:00 2001 From: Alex Loiko Date: Mon, 23 Oct 2017 13:15:32 +0200 Subject: [PATCH] Forgotten 'memset' in NoiseSuppression. The 'parametricNoise' field is never initialized in the 'WebRtcNs_InitCore' function that initializes a 'NoiseSuppressionC' struct. This leads to use of unititialized value, which may affect the audio output and result of the noise suppressor. The issue was found by the Chrome fuzzer: https://clusterfuzz.com/v2/testcase-detail/4749034115039232 Bug: chromium:776673 Change-Id: I1c3fd80cff178f2d5917064ad07f88c7b9a29e7d Reviewed-on: https://webrtc-review.googlesource.com/14556 Reviewed-by: Ivo Creusen Commit-Queue: Alex Loiko Cr-Commit-Position: refs/heads/master@{#20388} --- modules/audio_processing/ns/ns_core.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/audio_processing/ns/ns_core.c b/modules/audio_processing/ns/ns_core.c index a06ec5fb6c..3345b2451e 100644 --- a/modules/audio_processing/ns/ns_core.c +++ b/modules/audio_processing/ns/ns_core.c @@ -167,6 +167,8 @@ int WebRtcNs_InitCore(NoiseSuppressionC* self, uint32_t fs) { // Window time-average of input magnitude spectrum. self->featureData[6] = 0.f; + memset(self->parametricNoise, 0, sizeof(float) * HALF_ANAL_BLOCKL); + // Histogram quantities: used to estimate/update thresholds for features. memset(self->histLrt, 0, sizeof(int) * HIST_PAR_EST); memset(self->histSpecFlat, 0, sizeof(int) * HIST_PAR_EST);