Reported by Yehuda Weinraub (yehudasa@gamil.com) - CRC32C algorithm

uses incorrect init_bytes value. It SHOULD have the number
of bytes to get to a 4 byte boundary.

PR:	128134
MFC after:	4 weeks
This commit is contained in:
Randall Stewart 2008-10-18 15:53:31 +00:00
parent f1f0dd9ef3
commit fcea7c2ed3

View File

@ -583,13 +583,13 @@ update_crc32(uint32_t crc32c,
unsigned char *buffer,
unsigned int length)
{
uint32_t offset;
uint32_t to_even_word;
if (length == 0) {
return (crc32c);
}
offset = ((uintptr_t) buffer) & 0x3;
return (sctp_crc32c_sb8_64_bit(crc32c, buffer, length, offset));
to_even_word = (4 - (((uintptr_t) buffer) & 0x3));
return (sctp_crc32c_sb8_64_bit(crc32c, buffer, length, to_even_word));
}
uint32_t sctp_crc_c[256] = {