From: Joakim Tjernlund Date: Mon, 17 Nov 2008 10:22:25 +0000 (+0100) Subject: [lib] Move type cast in Fletcher checksum X-Git-Tag: frr-2.0-rc1~2347 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=6e907dd4abdff9c52c809ea49c76d789b11c0e12;p=matthieu%2Ffrr.git [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. --- diff --git a/lib/checksum.c b/lib/checksum.c index f6d74d3120..3ddde81523 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;