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

Reply via email to