RFC Errata


Errata Search

 
Source of RFC  
Summary Table Full Records

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: Legacy
Area 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: Legacy
Area 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: Legacy
Area 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

Report New Errata



Advanced Search