From 8bf32c3248fdf0105e9c8d1a3ad2d11e1747f165 Mon Sep 17 00:00:00 2001 From: Mark Haines Date: Tue, 23 Jun 2015 17:47:48 +0100 Subject: [PATCH] Fix bug encoding integers larger than 128 --- src/message.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/message.cpp b/src/message.cpp index 7eea4c2..343b094 100644 --- a/src/message.cpp +++ b/src/message.cpp @@ -21,7 +21,7 @@ std::size_t varint_length( T value ) { std::size_t result = 1; - while (value > 128U) { + while (value >= 128U) { ++result; value >>= 7; } @@ -34,8 +34,9 @@ std::uint8_t * varint_encode( std::uint8_t * output, T value ) { - while (value > 128U) { + while (value >= 128U) { *(output++) = (0x7F & value) | 0x80; + value >>= 7; } (*output++) = value; return output;