[FFmpeg-cvslog] alacdec: do not be too strict about the extradata size

Justin Ruggles git at videolan.org
Thu Jan 17 03:20:59 CET 2013


ffmpeg | branch: release/0.8 | Justin Ruggles <justin.ruggles at gmail.com> | Sat Dec 22 01:21:09 2012 -0500| [a39c6bf1b878f6667697225299707ef08a9482c8] | committer: Reinhard Tartler

alacdec: do not be too strict about the extradata size

Sometimes the extradata has duplicate atoms, but that shouldn't prevent
decoding. Just ensure that it is at least 36 bytes as a sanity check.

CC: libav-stable at libav.org
(cherry picked from commit 68a04b0ccee66f57516e129dd3ec457fd50b4bec)

Signed-off-by: Reinhard Tartler <siretart at tauware.de>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a39c6bf1b878f6667697225299707ef08a9482c8
---

 libavcodec/alac.c |    7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/libavcodec/alac.c b/libavcodec/alac.c
index 4ea3f7e..37e957e 100644
--- a/libavcodec/alac.c
+++ b/libavcodec/alac.c
@@ -664,10 +664,9 @@ static av_cold int alac_decode_init(AVCodecContext * avctx)
     alac->numchannels = alac->avctx->channels;
 
     /* initialize from the extradata */
-    if (alac->avctx->extradata_size != ALAC_EXTRADATA_SIZE) {
-        av_log(avctx, AV_LOG_ERROR, "alac: expected %d extradata bytes\n",
-            ALAC_EXTRADATA_SIZE);
-        return -1;
+    if (alac->avctx->extradata_size < ALAC_EXTRADATA_SIZE) {
+        av_log(avctx, AV_LOG_ERROR, "alac: extradata is too small\n");
+        return AVERROR_INVALIDDATA;
     }
     if (alac_set_info(alac)) {
         av_log(avctx, AV_LOG_ERROR, "alac: set_info failed\n");



More information about the ffmpeg-cvslog mailing list