diff --git a/src/utils/checksum.c b/src/utils/checksum.c index 0b325f3..54e124d 100644 --- a/src/utils/checksum.c +++ b/src/utils/checksum.c @@ -42,8 +42,7 @@ sum_words(const uint8_t *data, size_t len) } /* Handle odd byte if present */ - if (len & 1) - sum += (uint32_t)(*ptr << 8); + sum += ((uint32_t)(*ptr << 8)) & -(len & 1); return sum; }