OSDN Git Service

sonicdec: check decorrelation
authorMichael Niedermayer <michaelni@gmx.at>
Thu, 21 Mar 2013 14:45:59 +0000 (15:45 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 21 Mar 2013 14:45:59 +0000 (15:45 +0100)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/sonic.c

index fe9f01f..ae7ca4c 100644 (file)
@@ -801,6 +801,10 @@ static av_cold int sonic_decode_init(AVCodecContext *avctx)
     if (!s->lossless)
         skip_bits(&gb, 3); // XXX FIXME
     s->decorrelation = get_bits(&gb, 2);
+    if (s->decorrelation != 3 && s->channels != 2) {
+        av_log(avctx, AV_LOG_ERROR, "invalid decorrelation %d\n", s->decorrelation);
+        return AVERROR_INVALIDDATA;
+    }
 
     s->downsampling = get_bits(&gb, 2);
     if (!s->downsampling) {