RFC Errata
RFC 4960, "Stream Control Transmission Protocol", September 2007
Note: This RFC has been obsoleted by RFC 9260
Source of RFC: tsvwg (tsv)See Also: RFC 4960 w/ inline errata
Errata ID: 3423
Status: Verified
Type: Technical
Publication Format(s) : TEXT
Reported By: Pontus Andersson
Date Reported: 2012-12-01
Verifier Name: Martin Stiemerling
Date Verified: 2013-03-06
Section B says:
unsigned long generate_crc32c(unsigned char *buffer, unsigned int length) { unsigned int i; unsigned long crc32 = ~0L;
It should say:
unsigned long generate_crc32c(unsigned char *buffer, unsigned int length) { unsigned int i; unsigned long crc32 = 0xffffffffL;
Notes:
The remainder register (crc32) should be initialized to 0xffffffffL rather than ~0L, for correct operation on platforms where unisigned long is longer than 32 bits. I.e., 64-bit platforms.