From 6398ab8de5856135ee621d41bba4a4ed55b96fb7 Mon Sep 17 00:00:00 2001 From: Rajat Kumar Date: Tue, 1 Sep 2020 10:29:12 +0530 Subject: [PATCH] Fix for infinite loop in drc selection process DRC should not permit the configurations that exceed the total supported complexity. Bug: 167279883 Test: poc in bug Change-Id: Icffa42cdcd9184d434b7a0bfa1b11ebd5ec4af71 --- decoder/drc_src/impd_drc_selection_process.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/decoder/drc_src/impd_drc_selection_process.c b/decoder/drc_src/impd_drc_selection_process.c index fa84ff1..0917845 100644 --- a/decoder/drc_src/impd_drc_selection_process.c +++ b/decoder/drc_src/impd_drc_selection_process.c @@ -997,6 +997,10 @@ WORD32 impd_manage_complexity(ia_drc_sel_pro_struct* pstr_drc_uni_sel_proc, complexityDrcTotal *= freqNorm; complexityEqTotal *= freqNorm; + if ((complexityDrcTotal > complexitySupportedTotal) || + (complexityEqTotal > complexitySupportedTotal)) + return UNEXPECTED_ERROR; + if (numBandsTooLarge == 1) { if (pstr_drc_uni_sel_proc->uni_drc_sel_proc_output.sel_drc_set_ids[0] > 0) { err = impd_find_drc_instructions_uni_drc(