RFC Errata
RFC 5322, "Internet Message Format", October 2008
Note: This RFC has been updated by RFC 6854
Source of RFC: IETF - NON WORKING GROUPArea Assignment: app
See Also: RFC 5322 w/ inline errata
Errata ID: 1905
Status: Verified
Type: Technical
Publication Format(s) : TEXT
Reported By: Wolf Lammen
Date Reported: 2009-10-09
Verifier Name: Pete Resnick
Date Verified: 2011-06-11
Section 4.1 says:
obs-unstruct = *((*LF *CR *(obs-utext *LF *CR)) / FWS)
It should say:
obs-unstruct = *( (*CR 1*(obs-utext / FWS)) / 1*LF ) *CR
Notes:
It looks to me, as if the rule for obs-unstruct matches any US_ASCII character sequence, and is, hence, either overly complicated, or simply wrong. For example: CR LF 'A' is matched by the original rule (loop matches CR first, then LF 'A'). If I understand the accompaying text right, the intention was to allow for reversed sequences LF CR, as well as bare CR and LF sequences, but strictly forbid any occurrence of CR LF (in that order). This would be expressed by my rule, that basically states that any sequence of CR either is at the end, or is followed by a non-LF, or an FWS
[Alexey: removed unchanged ABNF rules, corrected an obvious error in the description of the change.]