From 6e907dd4abdff9c52c809ea49c76d789b11c0e12 Mon Sep 17 00:00:00 2001 From: Joakim Tjernlund Date: Mon, 17 Nov 2008 11:22:25 +0100 Subject: [lib] Move type cast in Fletcher checksum The int type cast should be on the whole expression passed to the mod operator. Otherwise it won't work when/if c0/c1 is unsigned. Making c0/c1 unsigned makes it possible to use 5802 as MODX value. --- lib/checksum.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/checksum.c b/lib/checksum.c index f6d74d31..3ddde815 100644 --- a/lib/checksum.c +++ b/lib/checksum.c @@ -91,7 +91,7 @@ fletcher_checksum(u_char * buffer, const size_t len, const uint16_t offset) } /* The cast is important, to ensure the mod is taken as a signed value. */ - x = ((int)(len - offset - 1) * c0 - c1) % 255; + x = (int)((len - offset - 1) * c0 - c1) % 255; if (x <= 0) x += 255; -- cgit v1.2.1