summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRajat Kumar <rajat.kumar@ittiam.com>2020-01-29 10:14:18 +0530
committerRay Essick <essick@google.com>2020-03-29 17:08:20 -0700
commitfdeb26a3f59a71fa72d79a29c9f12e14b86076f7 (patch)
tree43a42426b65a70e181d2d68f08658d5e668c86cc
parent7862de4bd2688f8489fd8e04d0c607169c469e38 (diff)
downloadplatform_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.c3
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;
}
}