From 949ae648bf7c654b8fae607a0988bfa672607156 Mon Sep 17 00:00:00 2001
From: Patrick Rauscher <prauscher@prauscher.de>
Date: Fri, 18 Aug 2017 17:31:23 +0200
Subject: [PATCH] Prepend zero-byte before unsigned integers

fixes #8

Signed-off-by: Alexander Sverdlin <alexander.sverdlin@gmail.com>
---
 mib.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/mib.c b/mib.c
index 7d2e513..a9ffbe2 100644
--- a/mib.c
+++ b/mib.c
@@ -207,6 +207,11 @@ static int encode_unsigned(data_t *data, int type, unsigned int ticks_value)
 	else
 		length = 1;
 
+	/* check if the integer could be interpreted negative during a signed decode and prepend a zero-byte if necessary */
+	if ((ticks_value >> (8 * (length - 1))) & 0x80) {
+		length++;
+	}
+
 	*buffer++ = type;
 	*buffer++ = length;
 	while (length--)
-- 
2.13.2