aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeelkamal Semwal <neelkamal.semwal@ittiam.com>2021-09-28 19:35:44 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2021-09-28 19:35:44 +0000
commitcffbdce3c4f8d74a5524414ab6cebf39f0618f26 (patch)
tree600db2cceed1c6fffd057f37bba63a75f313e843
parent878bdeb38043407869c684fb73708b04e8fe0ce4 (diff)
parent3c795870e3f5c5852cf08ad0ae69e8007df72f4b (diff)
downloadlibopus-cffbdce3c4f8d74a5524414ab6cebf39f0618f26.tar.gz
libOpus: fix integer overflow in silk_resampler_down2_hp am: 98ec800bdf am: fd1465e039 am: bdf35d57f4 am: 25204e35d4 am: 3c795870e3
Original change: https://android-review.googlesource.com/c/platform/external/libopus/+/1767386 Change-Id: I1f32f41e6aa09766b70c4533d459b93852365c34
-rw-r--r--src/analysis.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/analysis.c b/src/analysis.c
index 058328f0..8b4f22d0 100644
--- a/src/analysis.c
+++ b/src/analysis.c
@@ -149,7 +149,10 @@ static opus_val32 silk_resampler_down2_hp(
out32_hp = ADD32( out32_hp, X );
S[ 2 ] = ADD32( -in32, X );
- hp_ener += out32_hp*(opus_val64)out32_hp;
+ if(__builtin_add_overflow(hp_ener, out32_hp*(opus_val64)out32_hp, &hp_ener))
+ {
+ hp_ener = UINT64_MAX;
+ }
/* Add, convert back to int16 and store to output */
out[ k ] = HALF32(out32);
}