diff --git a/src/utils/bit_writer_utils.c b/src/utils/bit_writer_utils.c index bd2355a1..1e1f1c72 100644 --- a/src/utils/bit_writer_utils.c +++ b/src/utils/bit_writer_utils.c @@ -52,7 +52,7 @@ static int BitWriterResize(VP8BitWriter* const bw, size_t extra_size) { WEBP_UNSAFE_MEMCPY(new_buf, bw->buf, bw->pos); } WebPSafeFree(bw->buf); - bw->buf = new_buf; + bw->buf = WEBP_UNSAFE_FORGE_BIDI_INDEXABLE(uint8_t*, new_buf, new_size); bw->max_pos = new_size; return 1; } diff --git a/src/utils/bit_writer_utils.h b/src/utils/bit_writer_utils.h index d0cdd01d..36704234 100644 --- a/src/utils/bit_writer_utils.h +++ b/src/utils/bit_writer_utils.h @@ -32,9 +32,10 @@ typedef struct VP8BitWriter VP8BitWriter; struct VP8BitWriter { int32_t range; // range-1 int32_t value; - int run; // number of outstanding bits - int nb_bits; // number of pending bits - uint8_t* buf; // internal buffer. Re-allocated regularly. Not owned. + int run; // number of outstanding bits + int nb_bits; // number of pending bits + // internal buffer. Re-allocated regularly. Not owned. + uint8_t* WEBP_SIZED_BY_OR_NULL(max_pos) buf; size_t pos; size_t max_pos; int error; // true in case of error