RFC Errata


Errata Search

 
Source of RFC  
Summary Table Full Records

Found 3 records.

Status: Verified (1)

RFC 1071, "Computing the Internet checksum", September 1988

Source of RFC: Legacy
Area Assignment: int

Errata ID: 560

Status: Verified
Type: Editorial

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;

Status: Reported (1)

RFC 1071, "Computing the Internet checksum", September 1988

Source of RFC: Legacy
Area Assignment: int

Errata ID: 4918

Status: Reported
Type: Editorial

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

Source of RFC: Legacy
Area Assignment: int

Errata ID: 3133

Status: Held for Document Update
Type: Technical

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