Replace left shift with equivalent multiplication.

This minor issue was found by the UBSAN fuzzer.

We have used the Godbolt compiler explorer to check that similar
changes produce identical compiled code.


Bug: chromium:803078
Change-Id: Ib3fa38c101d7bda53d8d39062cb2c0a55144305f
Reviewed-on: https://webrtc-review.googlesource.com/42580
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21713}
This commit is contained in:
Alex Loiko
2018-01-22 11:52:31 +01:00
committed by Commit Bot
parent 266c633a5d
commit 736d2f7d12

View File

@ -496,8 +496,8 @@ WebRtcAecm_ProcessBlock(AecmCore* aecm,
tmp16no2 = ptrDfaClean[i] >> -qDomainDiff;
} else {
tmp16no1 = dfa_clean_q_domain_diff < 0
? aecm->nearFilt[i] >> -dfa_clean_q_domain_diff
: aecm->nearFilt[i] << dfa_clean_q_domain_diff;
? aecm->nearFilt[i] >> -dfa_clean_q_domain_diff
: aecm->nearFilt[i] * (1 << dfa_clean_q_domain_diff);
qDomainDiff = 0;
tmp16no2 = ptrDfaClean[i];
}
@ -508,7 +508,7 @@ WebRtcAecm_ProcessBlock(AecmCore* aecm,
if ((tmp16no2) & (-qDomainDiff > zeros16)) {
aecm->nearFilt[i] = WEBRTC_SPL_WORD16_MAX;
} else {
aecm->nearFilt[i] = qDomainDiff < 0 ? tmp16no2 << -qDomainDiff
aecm->nearFilt[i] = qDomainDiff < 0 ? tmp16no2 * (1 << -qDomainDiff)
: tmp16no2 >> qDomainDiff;
}