Limit too large shift exponent in apply_inter_tes()

Bug: 112892200
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: I74e349ecb796343b475b825ac7d97497560a1e7a
This commit is contained in:
Fraunhofer IIS FDK 2018-08-15 14:40:03 +02:00 committed by Jean-Michel Trivi
parent 55930c28af
commit 29b81acd78
1 changed files with 4 additions and 2 deletions

View File

@ -626,7 +626,8 @@ static void apply_inter_tes(FIXP_DBL **qmfReal, FIXP_DBL **qmfImag,
total_power_low >>= diff;
total_power_low_sf = new_summand_sf;
} else if (new_summand_sf < total_power_low_sf) {
new_summand >>= total_power_low_sf - new_summand_sf;
new_summand >>=
fMin(DFRACT_BITS - 1, total_power_low_sf - new_summand_sf);
}
total_power_low += (new_summand >> preShift2);
@ -638,7 +639,8 @@ static void apply_inter_tes(FIXP_DBL **qmfReal, FIXP_DBL **qmfImag,
fMin(DFRACT_BITS - 1, new_summand_sf - total_power_high_sf);
total_power_high_sf = new_summand_sf;
} else if (new_summand_sf < total_power_high_sf) {
new_summand >>= total_power_high_sf - new_summand_sf;
new_summand >>=
fMin(DFRACT_BITS - 1, total_power_high_sf - new_summand_sf);
}
total_power_high += (new_summand >> preShift2);