Diego Biurrun <[email protected]> writes:

> I see no more issues, I just want to run this through Oracle, once the
> TDSC decoder is through.

Thanks for taking care of this!

> +                if (chset->downmix_ncoeffs > DCA_XLL_DMIX_NCOEFFS_MAX) {
> +                    av_log(s->avctx, AV_LOG_WARNING,
> +                           "XLL: Skipping %d downmix coefficients, exceeding 
> implementation limit %d\n",
> +                           chset->downmix_ncoeffs, DCA_XLL_DMIX_NCOEFFS_MAX);
> +                    skip_bits_long(&s->gb, 9 * chset->downmix_ncoeffs);
> +                    chset->downmix_ncoeffs = 0;

I still think it would make sense with a return AVERROR_PATCHWELCOME
here. The alternatives are to either

1. Make the code reading chset->downmix_coeffs (that's close to the end
   of ff_dca_xll_decode_audio) check for chset->downmix_ncoeffs == 0,
   and do something not too insane, or error out at that time.

2. Allocate chset->downmix_coeffs dynamically.

Otherwise, we risk reading garbage, as well as reading beyond the end of
the buffer.

Regards,
/Niels

-- 
Niels Möller. PGP-encrypted email is preferred. Keyid C0B98E26.
Internet email is subject to wholesale government surveillance.
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to