As the title say.
It fixes make fate when using a bitstream reader with overread checks.

-- 
fenrir
>From a6cb9c115f5f65131a32b2d32477389532ce1868 Mon Sep 17 00:00:00 2001
From: Laurent Aimar <[email protected]>
Date: Fri, 9 Sep 2011 22:04:09 +0200
Subject: [PATCH] Fixed size given to init_get_bits() in ffv1 decoder.

init_get_bits() takes a number of bits and not a number of bytes as
its size argument.
---
 libavcodec/ffv1.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavcodec/ffv1.c b/libavcodec/ffv1.c
index 15d9553..8a6f33f 100644
--- a/libavcodec/ffv1.c
+++ b/libavcodec/ffv1.c
@@ -1693,7 +1693,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, AVPac
         bytes_read = c->bytestream - c->bytestream_start - 1;
         if(bytes_read ==0) av_log(avctx, AV_LOG_ERROR, "error at end of AC stream\n"); //FIXME
 //printf("pos=%d\n", bytes_read);
-        init_get_bits(&f->slice_context[0]->gb, buf + bytes_read, buf_size - bytes_read);
+        init_get_bits(&f->slice_context[0]->gb, buf + bytes_read, (buf_size - bytes_read) * 8);
     } else {
         bytes_read = 0; /* avoid warning */
     }
@@ -1710,7 +1710,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, AVPac
         if(fs->ac){
             ff_init_range_decoder(&fs->c, buf_p, v);
         }else{
-            init_get_bits(&fs->gb, buf_p, v);
+            init_get_bits(&fs->gb, buf_p, v * 8);
         }
     }
 
-- 
1.7.2.5

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to