RFC Errata


Errata Search

 
Source of RFC  
Summary Table Full Records

Found 2 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 { ... }

Report New Errata



Advanced Search