mlpdec: validate that the reported channel count matches the actual output
channel count (cherry picked from commit caa845851d790f894a2ccbe12580934f75545f92) Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
2c0cddf255
commit
7e95a12d51
@ -950,7 +950,12 @@ static int output_data_internal(MLPDecodeContext *m, unsigned int substr,
|
|||||||
int32_t *data_32 = (int32_t*) data;
|
int32_t *data_32 = (int32_t*) data;
|
||||||
int16_t *data_16 = (int16_t*) data;
|
int16_t *data_16 = (int16_t*) data;
|
||||||
|
|
||||||
if (*data_size < (s->max_channel + 1) * s->blockpos * (is32 ? 4 : 2))
|
if (m->avctx->channels != s->max_matrix_channel + 1) {
|
||||||
|
av_log(m->avctx, AV_LOG_ERROR, "channel count mismatch\n");
|
||||||
|
return AVERROR_INVALIDDATA;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (*data_size < m->avctx->channels * s->blockpos * (is32 ? 4 : 2))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
for (i = 0; i < s->blockpos; i++) {
|
for (i = 0; i < s->blockpos; i++) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user