RFC Errata
RFC 8878, "Zstandard Compression and the 'application/zstd' Media Type", February 2021
Note: This RFC has been updated by RFC 9659
Source of RFC: IETF - NON WORKING GROUPArea Assignment: art
See Also: RFC 8878 w/ inline errata
Errata ID: 6442
Status: Verified
Type: Technical
Publication Format(s) : TEXT, PDF, HTML
Reported By: Felix Handte
Date Reported: 2021-02-25
Verifier Name: Barry Leiba
Date Verified: 2021-03-08
Section 3.1.1.5 says:
The following table shows the values of the Repeated_Offsets as a series of sequences are applied to them: +=======+==========+===========+===========+===========+============+ |offset_|literals_ | Repeated_ | Repeated_ | Repeated_ |Comment | | value | length | Offset1 | Offset2 | Offset3 | | +=======+==========+===========+===========+===========+============+ | | | 1 | 4 | 8 |starting | | | | | | |values | +-------+----------+-----------+-----------+-----------+------------+ | 1114| 11 | 1111 | 1 | 4 |non-repeat | +-------+----------+-----------+-----------+-----------+------------+ | 1| 22 | 1111 | 1 | 4 |repeat 1; no| | | | | | |change | +-------+----------+-----------+-----------+-----------+------------+ | 2225| 22 | 2222 | 1111 | 1 |non-repeat | +-------+----------+-----------+-----------+-----------+------------+ | 1114| 111 | 1111 | 2222 | 1111 |non-repeat | +-------+----------+-----------+-----------+-----------+------------+ | 3336| 33 | 3333 | 1111 | 2222 |non-repeat | +-------+----------+-----------+-----------+-----------+------------+ | 2| 22 | 1111 | 3333 | 2222 |repeat 2; | | | | | | |swap 1 & 2 | +-------+----------+-----------+-----------+-----------+------------+ | 3| 33 | 2222 | 1111 | 3333 |repeat 3; | | | | | | |rotate 3 to | | | | | | |1 | +-------+----------+-----------+-----------+-----------+------------+ | 1| 0 | 2221 | 2222 | 1111 |insert | | | | | | |resolved | | | | | | |offset | +-------+----------+-----------+-----------+-----------+------------+ | 1| 0 | 2222 | 2221 | 3333 |repeat 2 | +-------+----------+-----------+-----------+-----------+------------+ Table 18: Repeated_Offsets
It should say:
The following table shows the values of the Repeated_Offsets as a series of sequences are applied to them: +=======+==========+===========+===========+===========+============+ |offset_|literals_ | Repeated_ | Repeated_ | Repeated_ |Comment | | value | length | Offset1 | Offset2 | Offset3 | | +=======+==========+===========+===========+===========+============+ | | | 1 | 4 | 8 |starting | | | | | | |values | +-------+----------+-----------+-----------+-----------+------------+ | 1114| 11 | 1111 | 1 | 4 |non-repeat | +-------+----------+-----------+-----------+-----------+------------+ | 1| 22 | 1111 | 1 | 4 |repeat 1; no| | | | | | |change | +-------+----------+-----------+-----------+-----------+------------+ | 2225| 22 | 2222 | 1111 | 1 |non-repeat | +-------+----------+-----------+-----------+-----------+------------+ | 1114| 111 | 1111 | 2222 | 1111 |non-repeat | +-------+----------+-----------+-----------+-----------+------------+ | 3336| 33 | 3333 | 1111 | 2222 |non-repeat | +-------+----------+-----------+-----------+-----------+------------+ | 2| 22 | 1111 | 3333 | 2222 |repeat 2; | | | | | | |swap 1 & 2 | +-------+----------+-----------+-----------+-----------+------------+ | 3| 33 | 2222 | 1111 | 3333 |repeat 3; | | | | | | |rotate 3 to | | | | | | |1 | +-------+----------+-----------+-----------+-----------+------------+ | 3| 0 | 2221 | 2222 | 1111 |insert | | | | | | |resolved | | | | | | |offset | +-------+----------+-----------+-----------+-----------+------------+ | 1| 0 | 2222 | 2221 | 3333 |repeat 2 | +-------+----------+-----------+-----------+-----------+------------+ Table 18: Repeated_Offsets
Notes:
The offset_value in the second-to-last line in the table should be 3, not 1. This line intends to demonstrate the property described earlier in the section that when the sequence's literals_length is 0, an offset_value of 3 resolves to Repeated_Offset1 - 1 and is inserted at the head of the Repeated_Offsets. This is the behavior that is reflected in the rest of the row, which an offset_value of 1 would not trigger (the resolved offset would be 2222, not 2221, and the Repeated_Offsets would remain unchanged, as demonstrated in the 3rd row of the table).
(I wrote this table and it read 3 in the version I provided to the document authors--a typo was introduced somewhere.)