From 949ae648bf7c654b8fae607a0988bfa672607156 Mon Sep 17 00:00:00 2001 From: Patrick Rauscher Date: Fri, 18 Aug 2017 17:31:23 +0200 Subject: [PATCH] Prepend zero-byte before unsigned integers fixes #8 Signed-off-by: Alexander Sverdlin --- 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