From 8bf32c3248fdf0105e9c8d1a3ad2d11e1747f165 Mon Sep 17 00:00:00 2001
From: Mark Haines <mark.haines@matrix.org>
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;
-- 
GitLab