Fix for OOB in parsing loud equalizer instruction in drc
Bug:116117112 Test: vendor Change-Id: I9d69d07dc36e8874d1784b4cf1f1a0a4fc99cee7
This commit is contained in:
parent
e5f65556cc
commit
7e8303bbaa
3 changed files with 30 additions and 13 deletions
|
|
@ -1307,12 +1307,20 @@ WORD32 impd_parse_loud_eq_instructions(
|
|||
temp = impd_read_bits_buf(it_bit_buff, 8);
|
||||
if (it_bit_buff->error) return it_bit_buff->error;
|
||||
|
||||
/* Parsed but unused */
|
||||
loud_eq_instructions->loudness_after_drc = (temp >> 7) & 0x01;
|
||||
|
||||
/* Parsed but unused */
|
||||
loud_eq_instructions->loudness_after_eq = (temp >> 6) & 0x01;
|
||||
|
||||
/* Parsed but unused */
|
||||
loud_eq_instructions->loud_eq_gain_sequence_count = temp & 0x3F;
|
||||
|
||||
if (loud_eq_instructions->loud_eq_gain_sequence_count >
|
||||
LOUD_EQ_GAIN_SEQUENCE_COUNT_MAX)
|
||||
return UNEXPECTED_ERROR;
|
||||
|
||||
/* Section under for loop, Parsed but unused */
|
||||
for (i = 0; i < loud_eq_instructions->loud_eq_gain_sequence_count; i++) {
|
||||
temp = impd_read_bits_buf(it_bit_buff, 7);
|
||||
if (it_bit_buff->error) return it_bit_buff->error;
|
||||
|
|
|
|||
|
|
@ -2382,7 +2382,9 @@ impd_parse_loudness_info(ia_bit_buf_struct* it_bit_buff, WORD32 version,
|
|||
temp = impd_read_bits_buf(it_bit_buff, 6);
|
||||
if (it_bit_buff->error) return it_bit_buff->error;
|
||||
|
||||
/* Parsed but unused */
|
||||
loudness_info->true_peak_level_measurement_system = (temp >> 2) & 0xf;
|
||||
/* Parsed but unused */
|
||||
loudness_info->true_peak_level_reliability = temp & 3;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -441,8 +441,8 @@ typedef struct {
|
|||
FLOAT32 sample_peak_level;
|
||||
WORD32 true_peak_level_present;
|
||||
FLOAT32 true_peak_level;
|
||||
WORD32 true_peak_level_measurement_system;
|
||||
WORD32 true_peak_level_reliability;
|
||||
WORD32 true_peak_level_measurement_system; /* Parsed but unused */
|
||||
WORD32 true_peak_level_reliability; /* Parsed but unused */
|
||||
WORD32 measurement_count;
|
||||
ia_loudness_measure_struct loudness_measure[MEASUREMENT_COUNT_MAX];
|
||||
} ia_loudness_info_struct;
|
||||
|
|
@ -456,17 +456,24 @@ typedef struct {
|
|||
WORD32 drc_set_id[DRC_SET_ID_COUNT_MAX];
|
||||
WORD32 eq_set_id_count;
|
||||
WORD32 eq_set_id[EQ_SET_ID_COUNT_MAX];
|
||||
WORD32 loudness_after_drc;
|
||||
WORD32 loudness_after_eq;
|
||||
WORD32 loud_eq_gain_sequence_count;
|
||||
WORD32 gain_seq_idx[LOUD_EQ_GAIN_SEQUENCE_COUNT_MAX];
|
||||
WORD32 drc_characteristic_format_is_cicp[LOUD_EQ_GAIN_SEQUENCE_COUNT_MAX];
|
||||
WORD32 drc_characteristic[LOUD_EQ_GAIN_SEQUENCE_COUNT_MAX];
|
||||
WORD32 drc_characteristic_left_index[LOUD_EQ_GAIN_SEQUENCE_COUNT_MAX];
|
||||
WORD32 drc_characteristic_right_index[LOUD_EQ_GAIN_SEQUENCE_COUNT_MAX];
|
||||
WORD32 frequency_range_index[LOUD_EQ_GAIN_SEQUENCE_COUNT_MAX];
|
||||
FLOAT32 loud_eq_scaling[LOUD_EQ_GAIN_SEQUENCE_COUNT_MAX];
|
||||
FLOAT32 loud_eq_offset[LOUD_EQ_GAIN_SEQUENCE_COUNT_MAX];
|
||||
WORD32 loudness_after_drc; /* Parsed but unused */
|
||||
WORD32 loudness_after_eq; /* Parsed but unused */
|
||||
WORD32 loud_eq_gain_sequence_count; /* Parsed but unused */
|
||||
WORD32 gain_seq_idx[LOUD_EQ_GAIN_SEQUENCE_COUNT_MAX]; /* Parsed but unused */
|
||||
WORD32 drc_characteristic_format_is_cicp
|
||||
[LOUD_EQ_GAIN_SEQUENCE_COUNT_MAX]; /* Parsed but unused */
|
||||
WORD32 drc_characteristic[LOUD_EQ_GAIN_SEQUENCE_COUNT_MAX]; /* Parsed but
|
||||
unused */
|
||||
WORD32 drc_characteristic_left_index
|
||||
[LOUD_EQ_GAIN_SEQUENCE_COUNT_MAX]; /* Parsed but unused */
|
||||
WORD32 drc_characteristic_right_index
|
||||
[LOUD_EQ_GAIN_SEQUENCE_COUNT_MAX]; /* Parsed but unused */
|
||||
WORD32 frequency_range_index[LOUD_EQ_GAIN_SEQUENCE_COUNT_MAX]; /* Parsed but
|
||||
unused */
|
||||
FLOAT32
|
||||
loud_eq_scaling[LOUD_EQ_GAIN_SEQUENCE_COUNT_MAX]; /* Parsed but unused */
|
||||
FLOAT32
|
||||
loud_eq_offset[LOUD_EQ_GAIN_SEQUENCE_COUNT_MAX]; /* Parsed but unused */
|
||||
} ia_loud_eq_instructions_struct;
|
||||
|
||||
typedef struct {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue