diff mbox

[FFmpeg-devel] avcodec/get_bits: Make sure the input bitstream with padding can be addressed

Message ID 20180324005626.17349-1-michael@niedermayer.cc
State Accepted
Commit e529fe7633762cb26a665fb6dee3be29b15285cc
Headers show

Commit Message

Michael Niedermayer March 24, 2018, 12:56 a.m. UTC
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
---
 libavcodec/get_bits.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Michael Niedermayer March 26, 2018, 12:13 a.m. UTC | #1
On Sat, Mar 24, 2018 at 01:56:26AM +0100, Michael Niedermayer wrote:
> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> ---
>  libavcodec/get_bits.h | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)

will apply

[...]
James Almer March 28, 2018, 4:11 a.m. UTC | #2
On 3/25/2018 9:13 PM, Michael Niedermayer wrote:
> On Sat, Mar 24, 2018 at 01:56:26AM +0100, Michael Niedermayer wrote:
>> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
>> ---
>>  libavcodec/get_bits.h | 3 ++-
>>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> will apply

HOSTCC	libavcodec/qdm2_tablegen.o
In file included from src/libavcodec/tableprint_vlc.h:40,
                 from src/libavcodec/qdm2_tablegen.c:25:
src/libavcodec/get_bits.h: In function 'init_get_bits':
src/libavcodec/get_bits.h:432: error: 'AV_INPUT_BUFFER_PADDING_SIZE'
undeclared (first use in this function)
src/libavcodec/get_bits.h:432: error: (Each undeclared identifier is
reported only once
src/libavcodec/get_bits.h:432: error: for each function it appears in.)
/home/fate/src/ffbuild/common.mak:152: recipe for target
'libavcodec/qdm2_tablegen.o' failed

When compiling with --enable-hardcoded-tables
Michael Niedermayer March 28, 2018, 11:09 p.m. UTC | #3
On Wed, Mar 28, 2018 at 01:11:06AM -0300, James Almer wrote:
> On 3/25/2018 9:13 PM, Michael Niedermayer wrote:
> > On Sat, Mar 24, 2018 at 01:56:26AM +0100, Michael Niedermayer wrote:
> >> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> >> ---
> >>  libavcodec/get_bits.h | 3 ++-
> >>  1 file changed, 2 insertions(+), 1 deletion(-)
> > 
> > will apply
> 
> HOSTCC	libavcodec/qdm2_tablegen.o
> In file included from src/libavcodec/tableprint_vlc.h:40,
>                  from src/libavcodec/qdm2_tablegen.c:25:
> src/libavcodec/get_bits.h: In function 'init_get_bits':
> src/libavcodec/get_bits.h:432: error: 'AV_INPUT_BUFFER_PADDING_SIZE'
> undeclared (first use in this function)
> src/libavcodec/get_bits.h:432: error: (Each undeclared identifier is
> reported only once
> src/libavcodec/get_bits.h:432: error: for each function it appears in.)
> /home/fate/src/ffbuild/common.mak:152: recipe for target
> 'libavcodec/qdm2_tablegen.o' failed
> 
> When compiling with --enable-hardcoded-tables

will fix

thx
diff mbox

Patch

diff --git a/libavcodec/get_bits.h b/libavcodec/get_bits.h
index f90a06c7a5..56ef5f0cbe 100644
--- a/libavcodec/get_bits.h
+++ b/libavcodec/get_bits.h
@@ -32,6 +32,7 @@ 
 #include "libavutil/intreadwrite.h"
 #include "libavutil/log.h"
 #include "libavutil/avassert.h"
+#include "avcodec.h"
 #include "mathops.h"
 #include "vlc.h"
 
@@ -435,7 +436,7 @@  static inline int init_get_bits(GetBitContext *s, const uint8_t *buffer,
     int buffer_size;
     int ret = 0;
 
-    if (bit_size >= INT_MAX - 7 || bit_size < 0 || !buffer) {
+    if (bit_size >= INT_MAX - FFMAX(7, AV_INPUT_BUFFER_PADDING_SIZE*8) || bit_size < 0 || !buffer) {
         bit_size    = 0;
         buffer      = NULL;
         ret         = AVERROR_INVALIDDATA;