Module: libav Branch: master Commit: c12c085be7e86880924249e5cb3f898e45dee134
Author: Tim Walker <[email protected]> Committer: Luca Barbato <[email protected]> Date: Sun Nov 22 00:02:37 2015 +0100 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 <[email protected]> --- libavcodec/dcadec.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/libavcodec/dcadec.c b/libavcodec/dcadec.c index 610857d..7e94638 100644 --- a/libavcodec/dcadec.c +++ b/libavcodec/dcadec.c @@ -1086,12 +1086,12 @@ static int dca_subframe_footer(DCAContext *s, int base_channel) align_get_bits(&s->gb); // byte align 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) { - av_log(s->avctx, AV_LOG_ERROR, - "Overread auxiliary data by %d bits\n", -reserved); - return AVERROR_INVALIDDATA; - } else if (reserved) { + /* + * additional data (reserved, cf. ETSI TS 102 114 V1.4.1) + * + * Note: don't check for overreads, aux_data_count can't be trusted. + */ + if ((reserved = (aux_data_end - get_bits_count(&s->gb))) > 0) { avpriv_request_sample(s->avctx, "Core auxiliary data reserved content"); skip_bits_long(&s->gb, reserved); _______________________________________________ libav-commits mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-commits
