Index: webrtc/modules/audio_processing/aec/aec_core.c |
diff --git a/webrtc/modules/audio_processing/aec/aec_core.c b/webrtc/modules/audio_processing/aec/aec_core.c |
index 063201586ad48d7d3af34508c4d1874cb5363b8b..b2162ac0b917619b878bd438925b2ca99027332b 100644 |
--- a/webrtc/modules/audio_processing/aec/aec_core.c |
+++ b/webrtc/modules/audio_processing/aec/aec_core.c |
@@ -820,8 +820,11 @@ static void UpdateDelayMetrics(AecCore* self) { |
// negative (anti-causal system) or larger than the AEC filter length. |
{ |
int num_delays_out_of_bounds = self->num_delay_values; |
+ const int histogram_length = sizeof(self->delay_histogram) / |
+ sizeof(self->delay_histogram[0]); |
for (i = lookahead; i < lookahead + self->num_partitions; ++i) { |
- num_delays_out_of_bounds -= self->delay_histogram[i]; |
+ if (i < histogram_length) |
+ num_delays_out_of_bounds -= self->delay_histogram[i]; |
} |
self->fraction_poor_delays = (float)num_delays_out_of_bounds / |
self->num_delay_values; |