Fix for stack buffer overflow in ixheaacd_esbr_chirp_fac_calc.

We found that error return was not being handled properly
in ixheaacd_applysbr() function. This led to a wrong value
being propagated which led to a stack buffer overflow.

Also, a flag for checking if any previous frames encountered
a fatal error has been added to ensure that further processing
of frames doesn't happen after encountering a fatal error.

Bug:130219994
Bug:131307285
Test: vendor
Change-Id: If7b3887afcb375dda292082438f61d156027b60e
This commit is contained in:
Rajat Kumar 2019-04-29 18:55:03 +05:30 • committed by Ray Essick
parent bbe47acd49
commit e34ec6918e
4 changed files with 10 additions and 6 deletions

View file

@ -500,6 +500,7 @@ IA_ERRORCODE ixheaacd_applysbr(
if (err || (ptr_header_data[k]->sync_state == SBR_NOT_INITIALIZED)) {
WORD32 lr1 = ps_enable ? 2 : num_channels;
ixheaacd_prepare_upsamp(ptr_header_data, pstr_sbr_channel, lr1);
if (err) return err;
}
if (frame_status && (ptr_header_data[k]->sync_state == SBR_ACTIVE)) {