diff options
author | Lode <lvandeve@gmail.com> | 2016-05-03 23:07:29 +0200 |
---|---|---|
committer | Lode <lvandeve@gmail.com> | 2016-05-03 23:07:29 +0200 |
commit | db9cc960fc1fec9075fb455c617a2e0cdd7c6fb2 (patch) | |
tree | dcdc97c443b55e56373859d3b16d0ac50a6c1a90 | |
parent | c6cf08b8910d91b0830666c07845116df1e9b6fc (diff) |
fix relying on integer underflow
-rw-r--r-- | lodepng.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lodepng.cpp b/lodepng.cpp index fcad93e..8c78758 100644 --- a/lodepng.cpp +++ b/lodepng.cpp @@ -2385,9 +2385,10 @@ static unsigned readBitsFromReversedStream(size_t* bitpointer, const unsigned ch { unsigned result = 0; size_t i; - for(i = nbits - 1; i < nbits; --i) + for(i = 0 ; i < nbits; ++i) { - result += (unsigned)readBitFromReversedStream(bitpointer, bitstream) << i; + result <<= 1; + result |= (unsigned)readBitFromReversedStream(bitpointer, bitstream); } return result; } |