mirror of https://git.ffmpeg.org/ffmpeg.git
avcodec/dstdec: Replace AC overread check by sample rate check
Real files do skip coding 0 bits at the end, thus this kind of check does not work reliable. Fixes: Ticket 8770 Fixes: dst-256fs44-6ch-refdstencoder.dff The samplerate is specified in ISO/IEC 14496-3:2005(E) as one of 3 fixed values, this also can be used to limit the duration and avoid the timeout This reverts commitf6df99dba1
. (cherry picked from commit1679f23beb
) Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
9fd30d0bdf
commit
2cebde69e0
|
@ -85,6 +85,12 @@ static av_cold int decode_init(AVCodecContext *avctx)
|
||||||
return AVERROR_PATCHWELCOME;
|
return AVERROR_PATCHWELCOME;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// the sample rate is only allowed to be 64,128,256 * 44100 by ISO/IEC 14496-3:2005(E)
|
||||||
|
// We are a bit more tolerant here, but this check is needed to bound the size and duration
|
||||||
|
if (avctx->sample_rate > 512 * 44100)
|
||||||
|
return AVERROR_INVALIDDATA;
|
||||||
|
|
||||||
|
|
||||||
if (DST_SAMPLES_PER_FRAME(avctx->sample_rate) & 7) {
|
if (DST_SAMPLES_PER_FRAME(avctx->sample_rate) & 7) {
|
||||||
return AVERROR_PATCHWELCOME;
|
return AVERROR_PATCHWELCOME;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue