mirror of
https://github.com/mstorsjo/fdk-aac.git
synced 2025-06-05 22:39:13 +02:00
Use SATURATE_LEFT_SHIFT in get_lsppol() to prevent integer overflow.
Bug: 131430997 Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc Change-Id: Ie9ec52485a52b076a900b111b035289110c004f8
This commit is contained in:
committed by
Jean-Michel Trivi
parent
4c839c6a90
commit
2d292e9b2d
@@ -1,7 +1,7 @@
|
|||||||
/* -----------------------------------------------------------------------------
|
/* -----------------------------------------------------------------------------
|
||||||
Software License for The Fraunhofer FDK AAC Codec Library for Android
|
Software License for The Fraunhofer FDK AAC Codec Library for Android
|
||||||
|
|
||||||
© Copyright 1995 - 2018 Fraunhofer-Gesellschaft zur Förderung der angewandten
|
© Copyright 1995 - 2019 Fraunhofer-Gesellschaft zur Förderung der angewandten
|
||||||
Forschung e.V. All rights reserved.
|
Forschung e.V. All rights reserved.
|
||||||
|
|
||||||
1. INTRODUCTION
|
1. INTRODUCTION
|
||||||
@@ -1138,9 +1138,12 @@ static void get_lsppol(FIXP_LPC lsp[], FIXP_DBL f[], int n, int flag) {
|
|||||||
for (i = 2; i <= n; i++) {
|
for (i = 2; i <= n; i++) {
|
||||||
plsp += 2;
|
plsp += 2;
|
||||||
b = -FX_LPC2FX_DBL(*plsp);
|
b = -FX_LPC2FX_DBL(*plsp);
|
||||||
f[i] = ((fMultDiv2(b, f[i - 1]) << 1) + (f[i - 2])) << 1;
|
f[i] = SATURATE_LEFT_SHIFT((fMultDiv2(b, f[i - 1]) + (f[i - 2] >> 1)), 2,
|
||||||
|
DFRACT_BITS);
|
||||||
for (j = i - 1; j > 1; j--) {
|
for (j = i - 1; j > 1; j--) {
|
||||||
f[j] = f[j] + (fMultDiv2(b, f[j - 1]) << 2) + f[j - 2];
|
f[j] = SATURATE_LEFT_SHIFT(
|
||||||
|
((f[j] >> 2) + fMultDiv2(b, f[j - 1]) + (f[j - 2] >> 2)), 2,
|
||||||
|
DFRACT_BITS);
|
||||||
}
|
}
|
||||||
f[1] = f[1] + (b >> (SF_F - 1));
|
f[1] = f[1] + (b >> (SF_F - 1));
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user