diff options
| author | Rajat Kumar <rajat.kumar@ittiam.com> | 2020-01-29 10:14:18 +0530 |
|---|---|---|
| committer | Ray Essick <essick@google.com> | 2020-03-29 17:08:20 -0700 |
| commit | fdeb26a3f59a71fa72d79a29c9f12e14b86076f7 (patch) | |
| tree | 43a42426b65a70e181d2d68f08658d5e668c86cc | |
| parent | 7862de4bd2688f8489fd8e04d0c607169c469e38 (diff) | |
| download | platform_external_libxaac-fdeb26a3f59a71fa72d79a29c9f12e14b86076f7.tar.gz platform_external_libxaac-fdeb26a3f59a71fa72d79a29c9f12e14b86076f7.tar.bz2 platform_external_libxaac-fdeb26a3f59a71fa72d79a29c9f12e14b86076f7.zip | |
Fix for infinite loop in impd_apply_gains_and_add function
if (iEnd == iStart) is true until end line of loop,
and (drc_gain_last == shape_filter_block[g].drc_gain_last)
is also true, this make iEnd unchanged for ever
and the while loop will go into infinite iterations.
Hence added a check to break for the same.
Bug:148433653
Bug:151817831
Test:poc in bug
Change-Id: I2a59cde98abee0f28510a5b50ef44b3efd02c079
| -rw-r--r-- | decoder/drc_src/impd_drc_process.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/decoder/drc_src/impd_drc_process.c b/decoder/drc_src/impd_drc_process.c index 8000de2..45403ac 100644 --- a/decoder/drc_src/impd_drc_process.c +++ b/decoder/drc_src/impd_drc_process.c @@ -130,6 +130,9 @@ WORD32 impd_apply_gains_and_add( impd_shape_filt_block_adapt(lpcm_gains[iEnd], &shape_filter_block[g]); } + if ((iEnd == iStart) && + (drc_gain_last == shape_filter_block[g].drc_gain_last)) + break; iStart = iEnd; } } |
