]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/rangecoder.h
avcodec/jpeg2000dsp: Fix multiple integer overflows in ict_int()
[ffmpeg] / libavcodec / rangecoder.h
index c3e81d0dcba7adedd278b0fd4c60d090e5246503..44af88b8f57f1b00b90407817a661241439e3fab 100644 (file)
@@ -42,6 +42,8 @@ typedef struct RangeCoder {
     uint8_t *bytestream_start;
     uint8_t *bytestream;
     uint8_t *bytestream_end;
+    int overread;
+#define MAX_OVERREAD 2
 } RangeCoder;
 
 void ff_init_range_encoder(RangeCoder *c, uint8_t *buf, int buf_size);
@@ -106,9 +108,11 @@ static inline void refill(RangeCoder *c)
     if (c->range < 0x100) {
         c->range <<= 8;
         c->low   <<= 8;
-        if (c->bytestream < c->bytestream_end)
+        if (c->bytestream < c->bytestream_end) {
             c->low += c->bytestream[0];
-        c->bytestream++;
+            c->bytestream++;
+        } else
+            c->overread ++;
     }
 }