RFC Errata


Errata Search

 
Source of RFC  
Summary Table Full Records

Found 3 records.

Status: Reported (2)

RFC 4506, "XDR: External Data Representation Standard", May 2006

Source of RFC: nfsv4 (wit)

Errata ID: 6382
Status: Reported
Type: Technical
Publication Format(s) : TEXT

Reported By: Ed Schouten
Date Reported: 2021-01-08

Section 6.3 says:

      declaration:
           type-specifier identifier
         | type-specifier identifier "[" value "]"
         | type-specifier identifier "<" [ value ] ">"
         | "opaque" identifier "[" value "]"
         | "opaque" identifier "<" [ value ] ">"
         | "string" identifier "<" [ value ] ">"
         | type-specifier "*" identifier
         | "void"

[...]

      struct-body:
         "{"
            ( declaration ";" )
            ( declaration ";" )*
         "}"

[...]

      type-def:
           "typedef" declaration ";"
         | "enum" identifier enum-body ";"
         | "struct" identifier struct-body ";"
         | "union" identifier union-body ";"

It should say:

None

Notes:

This grammar permits statements like:

typedef void;
struct foo { void; };

rpcgen doesn't allow this, failing with the following error message:

voids allowed only inside union and program definitions with one argument

Errata ID: 7101
Status: Reported
Type: Technical
Publication Format(s) : TEXT

Reported By: Dylan Allbee
Date Reported: 2022-08-21

Section 4.3 says:

Enumerations have the same representation as signed integers.
Enumerations are handy for describing subsets of the integers.
Enumerated data is declared as follows:

    enum { name-identifier = constant, ... } identifier;

For example, the three colors red, yellow, and blue could be
described by an enumerated type:

    enum { RED = 2, YELLOW = 3, BLUE = 5 } colors;

It should say:

...

    enum identifier { name-identifier = constant, ... } ;
         ^^^^^^^^^^

...

    enum colors { RED = 2, YELLOW = 3, BLUE = 5 } ;
         ^^^^^^ 

Notes:

The grammar for this definition, as specified in 6.3, is:

type-def:
"typedef" declaration ";"
| "enum" identifier enum-body ";"
| "struct" identifier struct-body ";"
| "union" identifier union-body ";"

It is unclear whether the original intent was for identifies to precede or succeed the definition bodies. The example in section 7 shows: enum filekind { ... }

And several RFCs which depend on 4506 have also followed that pattern, such as this example from RFC 5531, section 8.2: enum auth_flavor { ... }

Status: Held for Document Update (1)

RFC 4506, "XDR: External Data Representation Standard", May 2006

Source of RFC: nfsv4 (wit)

Errata ID: 76
Status: Held for Document Update
Type: Editorial
Publication Format(s) : TEXT

Reported By: Alfred Hoenes
Date Reported: 2006-05-24
Held for Document Update by: Martin Stiemerling

 

(1) Section 6.2, page 18 - typo (word omission)

The words in the 9th line of the text,

    [...] "followed by one or hexadecimal digits" [...]

should say:

    [...] "followed by one or more hexadecimal digits" [...]
                             ^^^^^^

(2) Section 8, 2nd paragraph (page 22) - typo

The RFC says:

   Care must be take to properly encode and decode data to avoid
   attacks.  [...]

it should say:
                    vv
   Care must be taken to properly encode and decode data to avoid
   attacks.  [...]


(3) Subtle inconsistency between Section 6.1 and Section 6.2

On page 17, Section 6.1 states the Notational Convention:

   (2) Terminal symbols are strings of characters surrounded by
       double quotes.
       ^^^^^^
Nevertheless, throughout the new Section 6.2 (on page 18), all
terminal symbols, e.g. the "generalized digits" -- the terminals
to build octal, decimal, and hexadecimal constants, are specified
as characters surrounded by *single* quotes.
                             ^^^^^^
Although this style perhaps was inspired by the `C` language,
IMHO, its use is inconsistent in that context.

Notes:

from pending

Report New Errata



Advanced Search