summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/crc32.c4
-rw-r--r--lib/crc64.c3
2 files changed, 5 insertions, 2 deletions
diff --git a/lib/crc32.c b/lib/crc32.c
index eaaa06a0c..be98f1a8d 100644
--- a/lib/crc32.c
+++ b/lib/crc32.c
@@ -108,8 +108,10 @@ uint32_t crc32(uint32_t seed, const unsigned char *buf, size_t len)
uint32_t crc = seed;
const unsigned char *p = buf;
- while(len-- > 0)
+ while (len) {
crc = crc32_tab[(crc ^ *p++) & 0xff] ^ (crc >> 8);
+ len--;
+ }
return crc;
}
diff --git a/lib/crc64.c b/lib/crc64.c
index 091e95d76..0be78e63b 100644
--- a/lib/crc64.c
+++ b/lib/crc64.c
@@ -98,9 +98,10 @@ uint64_t crc64(uint64_t seed, const unsigned char *data, size_t len)
{
uint64_t crc = seed;
- while (len--) {
+ while (len) {
int i = ((int) (crc >> 56) ^ *data++) & 0xFF;
crc = crc64_tab[i] ^ (crc << 8);
+ len--;
}
return crc;