]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/rv30.c
avcodec/rv30: check rpr before use against maximum
[ffmpeg] / libavcodec / rv30.c
index 6c65afb83f88f68bb9773bac7c0e6689a5258a29..901ba89618387f1d02283e5015931184a714c694 100644 (file)
@@ -52,6 +52,11 @@ static int rv30_parse_slice_header(RV34DecContext *r, GetBitContext *gb, SliceIn
     si->pts = get_bits(gb, 13);
     rpr = get_bits(gb, av_log2(r->max_rpr) + 1);
     if(rpr){
+        if (rpr > r->max_rpr) {
+            av_log(avctx, AV_LOG_ERROR, "rpr too large\n");
+            return AVERROR_INVALIDDATA;
+        }
+
         if (avctx->extradata_size < rpr * 2 + 8) {
             av_log(avctx, AV_LOG_ERROR,
                    "Insufficient extradata - need at least %d bytes, got %d\n",