From f29c44ed38db167be86e734c302b50cdc6b29227 Mon Sep 17 00:00:00 2001 From: Evgenii Kliuchnikov Date: Wed, 15 Mar 2023 13:29:35 +0000 Subject: Avoid nullptr with zero offset PiperOrigin-RevId: 516808122 --- c/dec/bit_reader.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/c/dec/bit_reader.h b/c/dec/bit_reader.h index b3fddea..3d1024b 100644 --- a/c/dec/bit_reader.h +++ b/c/dec/bit_reader.h @@ -84,7 +84,7 @@ static BROTLI_INLINE void BrotliBitReaderSaveState( static BROTLI_INLINE void BrotliBitReaderSetInput( BrotliBitReader* const br, const uint8_t* next_in, size_t avail_in) { br->next_in = next_in; - br->last_in = next_in + avail_in; + br->last_in = (avail_in == 0) ? next_in : (next_in + avail_in); if (avail_in + 1 > BROTLI_FAST_INPUT_SLACK) { br->guard_in = next_in + (avail_in + 1 - BROTLI_FAST_INPUT_SLACK); } else { @@ -251,7 +251,8 @@ static BROTLI_INLINE void BrotliDropBits( static BROTLI_INLINE void BrotliBitReaderUnload(BrotliBitReader* br) { brotli_reg_t unused_bytes = BrotliGetAvailableBits(br) >> 3; brotli_reg_t unused_bits = unused_bytes << 3; - br->next_in -= unused_bytes; + br->next_in = + (unused_bytes == 0) ? br->next_in : (br->next_in - unused_bytes); if (unused_bits == sizeof(br->val_) << 3) { br->val_ = 0; } else { -- cgit v1.1