]> git.sesse.net Git - ffmpeg/commitdiff
avcodec/flacdec: Check for invalid vlcs
authorMichael Niedermayer <michael@niedermayer.cc>
Fri, 9 Dec 2016 15:29:35 +0000 (16:29 +0100)
committerMichael Niedermayer <michael@niedermayer.cc>
Sat, 4 Feb 2017 01:26:37 +0000 (02:26 +0100)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavcodec/flacdec.c

index af81115ff811da964801b724ea1924813e14bbc1..0fffc2dd941ca52d051cc2805ac1678a940319d2 100644 (file)
@@ -259,7 +259,13 @@ static int decode_residuals(FLACContext *s, int32_t *decoded, int pred_order)
                 *decoded++ = get_sbits_long(&s->gb, tmp);
         } else {
             for (; i < samples; i++) {
-                *decoded++ = get_sr_golomb_flac(&s->gb, tmp, INT_MAX, 0);
+                int v = get_sr_golomb_flac(&s->gb, tmp, INT_MAX, 0);
+                if (v == 0x80000000){
+                    av_log(s->avctx, AV_LOG_ERROR, "invalid residual\n");
+                    return AVERROR_INVALIDDATA;
+                }
+
+                *decoded++ = v;
             }
         }
         i= 0;