RFC Errata
Found 4 records.
Status: Verified (2)
RFC 1071, "Computing the Internet checksum", September 1988
Note: This RFC has been updated by RFC 1141
Source of RFC: LegacyArea Assignment: int
Errata ID: 560
Status: Verified
Type: Editorial
Publication Format(s) : TEXT
Reported By: Tim Moors
Date Reported: 2004-04-05
Section 4.1 says:
while( count > 1 ) { /* This is the inner loop */ sum += * (unsigned short) addr++; count -= 2;
It should say:
while( count > 1 ) { /* This is the inner loop */ sum += * (unsigned short *) addr++; count -= 2;
Errata ID: 7711
Status: Verified
Type: Editorial
Publication Format(s) : TEXT
Reported By: Mohammed Amine CHAKIR
Date Reported: 2023-11-23
Verifier Name: RFC Editor
Date Verified: 2023-11-28
Section 3 says:
We now present explicit examples of calculating a simple 1's complement sum on a 2's complement machine. The examples show the same sum calculated byte by bye, by 16-bits words in normal and swapped order, and 32 bits at a time in 3 different orders. All numbers are in hex.
It should say:
We now present explicit examples of calculating a simple 1's complement sum on a 2's complement machine. The examples show the same sum calculated byte by byte, by 16-bits words in normal and swapped order, and 32 bits at a time in 3 different orders. All numbers are in hex.
Notes:
A small typo in line 3 in the second occurrence of the word 'byte'
Status: Reported (1)
RFC 1071, "Computing the Internet checksum", September 1988
Note: This RFC has been updated by RFC 1141
Source of RFC: LegacyArea Assignment: int
Errata ID: 4918
Status: Reported
Type: Editorial
Publication Format(s) : TEXT
Reported By: Cihangir Akturk
Date Reported: 2017-01-26
Section 4.1 says:
while( count > 1 ) { /* This is the inner loop */ sum += * (unsigned short) addr++; count -= 2; }
It should say:
while( count > 1 ) { /* This is the inner loop */ sum += * (unsigned short *) addr; addr += 2; count -= 2; }
Notes:
- In the original text, code incorrectly casts from pointer to integer.
- Increments addr pointer by 1. Because unsigned short is two bytes, it should have been incremented by 2 instead.
Status: Held for Document Update (1)
RFC 1071, "Computing the Internet checksum", September 1988
Note: This RFC has been updated by RFC 1141
Source of RFC: LegacyArea Assignment: int
Errata ID: 3133
Status: Held for Document Update
Type: Technical
Publication Format(s) : TEXT
Reported By: chenhaospark
Date Reported: 2012-02-23
Held for Document Update by: Brian Haberman
Section 4.1 says:
/* Add left-over byte, if any */ if( count > 0 ) sum += * (unsigned char *) addr;
It should say:
/* Add left-over byte, if any */ if( count > 0 ) { unsigned short left_over = 0; * (unsigned char *) &left_over = * (unsigned char *) addr; sum += left_over; }
Notes:
for big-endian