Subject: [sieve] [Editorial Errata Reported] RFC5804 (6345)

From: RFC Errata System <[email-masked]>
Date: Mon, 30 Nov 2020 01:05:07 -0800 (PST)

The following errata report has been submitted for RFC5804,
"A Protocol for Remotely Managing Sieve Scripts".

--------------------------------------
You may review the report below and at:
https://www.rfc-editor.org/errata/eid6345

--------------------------------------
Type: Editorial
Reported by: Kaspar Etter <[email-masked]>

Section: 2.6

Original Text
-------------
Examples:
[…]
       C: Putscript "mysievescript" {110+}
       C: require ["fileinto"];
       C:
       C: if envelope :contains "to" "tmartin+sent" {
       C:   fileinto "INBOX.sent";
       C: }
       S: OK

       C: Putscript "myforwards" {190+}
       C: redirect "[email-masked]";
       C:
       C: if size :under 10k {
       C:     redirect "[email-masked]";
       C: }
       C:
       C: if envelope :contains "to" "tmartin+lists" {
       C:     redirect "[email-masked]";
       C: }
       S: OK (WARNINGS) "line 8: server redirect action
               limit is 2, this redirect might be ignored"

Corrected Text
--------------
Examples:
[…]
       C: Putscript "mysievescript" {99+}
       C: require ["fileinto"];
       C:
       C: if envelope :contains "to" "tmartin+sent" {
       C:   fileinto "INBOX.sent";
       C: }
       C:
       S: OK

       C: Putscript "myforwards" {190+}
       C: redirect "[email-masked]";
       C:
       C: if size :under 10k {
       C:     redirect "[email-masked]";
       C: }
       C:
       C: if envelope :contains "to" "tmartin+lists" {
       C:     redirect "[email-masked]";
       C: }
       C:
       S: OK (WARNINGS) "line 8: server redirect action
               limit is 2, this redirect might be ignored"

Notes
-----
The octet count of the second example is wrong. Additionally, both the second and the third example should have an empty client line after the code like the first example. Otherwise, the octet count of the last example is also wrong.

Instructions:
-------------
This erratum is currently posted as "Reported". If necessary, please
use "Reply All" to discuss whether it should be verified or
rejected. When a decision is reached, the verifying party  
can log in to change the status and edit the report, if necessary. 

--------------------------------------
RFC5804 (draft-ietf-sieve-managesieve-09)
--------------------------------------
Title               : A Protocol for Remotely Managing Sieve Scripts
Publication Date    : July 2010
Author(s)           : A. Melnikov, Ed., T. Martin
Category            : PROPOSED STANDARD
Source              : Sieve Mail Filtering Language
Area                : Applications
Stream              : IETF
Verifying Party     : IESG

---

From: Barry Leiba <[email-masked]>
Date: Mon, 30 Nov 2020 10:13:38 -0500

This report is correct that the "110" count in the second example (the
first example cited in the report) is incorrect, and should be 99.

The report's second point is a tricky one.  I think the report is also
correct about that, and here's why:

Section 1.1 says this:

   All interactions transmitted by client and server are in the form of
   lines, that is, strings that end with a CRLF.  The protocol receiver
   of a ManageSieve client or server is either reading a line or reading
   a sequence of octets with a known count followed by a line.

That means that each line of the example implicitly includes "CRLF" at
the end of it, and the count includes the final one of those.  And
then there has to be another CRLF to end the command itself.  In the
first example, that's represented by the empty line, "C:".  The second
and third examples lack that.

I intend to resolve this errata report as "Verified".  Does anyone on
this list think otherwise?

Barry

---

From: Barry Leiba <[email-masked]>
Date: Mon, 30 Nov 2020 10:22:31 -0500

> Given the errata is correct as far as it goes but incomplete, I have
> no idea how you want to handle it.

I can edit the errata report when I process it, and correct the correction.

Barry

---

From: Alexey Melnikov <[email-masked]>
Date: Mon, 30 Nov 2020 18:07:05 +0000

Hi all,

On 30/11/2020 14:41, Ned Freed wrote:
>> The octet count of the second example is wrong. Additionally, both the second
>> and the third example should have an empty client line after the code like the
>> first example. Otherwise, the octet count of the last example is also wrong.
> The analysis here is correct: I both hand-counted and cut-and-pasted the
> original and revised objects into my managesieve to be sure. However, my
> managesieve implementation rejected both scripts because they both use an
> envelope test but envelope isn't listed in the require clause.
Yes, good point. And thank you for the corrected scripts.
> In order to
> correct this, the examples need to be changed to:
>
>         C: require ["fileinto", "envelope"];
>         C:
>         C: Putscript "myforwards" {213+}
>         C: require "envelope";
>         C:
>         S:  limit is 2, this redirect might be ignored"
>
> I also added the missing S: from the last line of server response and
> removed the preceeding whitespace.

Actually this last addition of "S:" is incorrect. As per section 1.9:

    In examples, "C:" and "S:" indicate lines sent by the client and
    server respectively.  Line breaks that do not start a new "C:" or
    "S:" exist for editorial reasons.

Basically each "S:" implies that there is a CRLF at the end of the line, but in the above case there is none. Quoted strings can't contain embedded CRLFs.

Best Regards,

Alexey

> 				Ned
>> _______________________________________________
>> sieve mailing list
>> [email-masked]
>> https://www.ietf.org/mailman/listinfo/sieve