diff options
Diffstat (limited to 'src/utils/chksum/crc32.c')
-rw-r--r-- | src/utils/chksum/crc32.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/utils/chksum/crc32.c b/src/utils/chksum/crc32.c index b11dec9..0c46107 100644 --- a/src/utils/chksum/crc32.c +++ b/src/utils/chksum/crc32.c @@ -97,7 +97,8 @@ liberasurecode_crc32_alt(int crc, const void *buf, size_t size) crc = crc ^ ~0U; while (size--) - crc = crc32_tab[(crc ^ *p++) & 0xFF] ^ (crc >> 8); + crc = crc32_tab[(crc ^ *p++) & 0xFF] ^ + ((((crc >> 8) & 0x00FFFFFF) ^ 0x00800000) - 0x00800000); return crc ^ ~0U; } |