RFC Errata
RFC 4975, "The Message Session Relay Protocol (MSRP)", September 2007
Note: This RFC has been updated by RFC 7977, RFC 8591, RFC 8873, RFC 8996
Source of RFC: simple (rai)
Errata ID: 4177
Status: Reported
Type: Editorial
Publication Format(s) : TEXT
Reported By: Archie Cobbs
Date Reported: 2014-11-13
Section 7.1 says:
line, and a flag character. If a body is present, the end-line MUST be preceded by a CRLF that is not part of the body. If the chunk represents the data that forms the end of the complete message, the flag value MUST be a "$". If the sender is aborting an incomplete message, and intends to send no further chunks in that message, the flag MUST be a "#". Otherwise, the flag MUST be a "+". If the request contains a body, the sender MUST ensure that the end- line (seven hyphens, the transaction identifier, and a continuation flag) is not present in the body. If the end-line is present in the
It should say:
line, and a flag character. If a body is present, the end-line MUST be preceded by a CRLF that is not part of the body. If the chunk represents the data that forms the end of the complete message, the flag value MUST be a "$". If the sender is aborting an incomplete message, and intends to send no further chunks in that message, the flag MUST be a "#". Otherwise, the flag MUST be a "+". If the request contains a body, the sender MUST ensure that the end- line (seven hyphens, the transaction identifier, and a continuation flag) is not present in the body. A receiver detecting an end-line present in the body preceded by a non-empty sequence other than CRLF SHOULD terminate the session. If the end-line is present in the
Notes:
The way the text is written leaves unspecified how a receiver should handle the situation where it encounters an end-line within the body that's preceded by something OTHER than CRLF.
Obviously, this indicates the sender is not complying with this RFC, but what should the receiver do?
Should the receiver terminate the connection? Or just proceed giving no special interpretation to the end-line, which would actually work just fine?
The suggested change reflects the first choice. If the second choice were made, the change could be:
If the request contains a body, the sender MUST ensure that the
end-line (seven hyphens, the transaction identifier, and a continuation
flag) neither appears at the beginning of the body nor is not present
in the body preceded by CRLF. An end-line MAY appear in the body if
preceded in the body by any non-empty sequence other than CRLF.
This would force the interpretation that an end-line not preceded by CRLF has no special significance.