From: Miroslav Lichvar Date: Thu, 17 Mar 2016 13:28:45 +0000 (+0100) Subject: util: fix UTI_FloatNetworkToHost() with very small exponents X-Git-Tag: 2.4-pre1~38 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5833be6ccfb1bb97f18181dcad2d64640fd8561b;p=thirdparty%2Fchrony.git util: fix UTI_FloatNetworkToHost() with very small exponents Fix conversion of floating point numbers from the cmdmon format with very small exponents, as for instance could be in the smoothing report when the smoothing process ends. This was broken in commit 8e71a46173afe01e11620980a1c7c028d7fd048f. --- diff --git a/util.c b/util.c index b654e632..9085ff6b 100644 --- a/util.c +++ b/util.c @@ -807,9 +807,10 @@ UTI_FloatNetworkToHost(Float f) x = ntohl(f.f); - exp = (x >> FLOAT_COEF_BITS) - FLOAT_COEF_BITS; + exp = x >> FLOAT_COEF_BITS; if (exp >= 1 << (FLOAT_EXP_BITS - 1)) exp -= 1 << FLOAT_EXP_BITS; + exp -= FLOAT_COEF_BITS; coef = x % (1U << FLOAT_COEF_BITS); if (coef >= 1 << (FLOAT_COEF_BITS - 1))