From abf1752ff44481cff17b5bfada8e18bf537fe27d Mon Sep 17 00:00:00 2001 From: ivoc Date: Tue, 10 Jan 2017 03:37:20 -0800 Subject: [PATCH] Fix for left shift of potentially negative value. Left shifting of negative integers is undefined behavior, and should be prevented. This CL fixes one such instance in the Levinson Durbin function. BUG=chromium:675349 Review-Url: https://codereview.webrtc.org/2621693002 Cr-Commit-Position: refs/heads/master@{#15984} --- webrtc/common_audio/signal_processing/levinson_durbin.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webrtc/common_audio/signal_processing/levinson_durbin.c b/webrtc/common_audio/signal_processing/levinson_durbin.c index 2983c56dd6..61f3721977 100644 --- a/webrtc/common_audio/signal_processing/levinson_durbin.c +++ b/webrtc/common_audio/signal_processing/levinson_durbin.c @@ -193,7 +193,7 @@ int16_t WebRtcSpl_LevinsonDurbin(const int32_t* R, int16_t* A, int16_t* K, // Alpha = Alpha * (1-K^2) - temp1W32 = ((K_hi * K_low >> 14) + K_hi * K_hi) << 1; // K*K in Q31 + temp1W32 = ((K_hi * K_low >> 14) + K_hi * K_hi) * 2; // K*K in Q31 temp1W32 = WEBRTC_SPL_ABS_W32(temp1W32); // Guard against <0 temp1W32 = (int32_t)0x7fffffffL - temp1W32; // 1 - K*K in Q31