dcadec: Do not check for overreads in auxiliary data
The auxiliary data length field is not reliable, and incorrect overread errors could be returned for valid, real-world bitstreams. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
This commit is contained in:
parent
c8fa647811
commit
c12c085be7
@ -1086,12 +1086,12 @@ static int dca_subframe_footer(DCAContext *s, int base_channel)
|
|||||||
align_get_bits(&s->gb); // byte align
|
align_get_bits(&s->gb); // byte align
|
||||||
skip_bits(&s->gb, 16); // nAUXCRC16
|
skip_bits(&s->gb, 16); // nAUXCRC16
|
||||||
|
|
||||||
// additional data (reserved, cf. ETSI TS 102 114 V1.4.1)
|
/*
|
||||||
if ((reserved = (aux_data_end - get_bits_count(&s->gb))) < 0) {
|
* additional data (reserved, cf. ETSI TS 102 114 V1.4.1)
|
||||||
av_log(s->avctx, AV_LOG_ERROR,
|
*
|
||||||
"Overread auxiliary data by %d bits\n", -reserved);
|
* Note: don't check for overreads, aux_data_count can't be trusted.
|
||||||
return AVERROR_INVALIDDATA;
|
*/
|
||||||
} else if (reserved) {
|
if ((reserved = (aux_data_end - get_bits_count(&s->gb))) > 0) {
|
||||||
avpriv_request_sample(s->avctx,
|
avpriv_request_sample(s->avctx,
|
||||||
"Core auxiliary data reserved content");
|
"Core auxiliary data reserved content");
|
||||||
skip_bits_long(&s->gb, reserved);
|
skip_bits_long(&s->gb, reserved);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user