Re: [usefor] Issue with ABNF grammar in RFC 5536

Michael Bäuerle <michael.baeuerle@stz-e.de> Fri, 07 July 2017 16:59 UTC

Return-Path: <michael.baeuerle@stz-e.de>
X-Original-To: usefor@ietfa.amsl.com
Delivered-To: usefor@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 74298131789 for <usefor@ietfa.amsl.com>; Fri, 7 Jul 2017 09:59:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level:
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id n-6e-m7Shfvd for <usefor@ietfa.amsl.com>; Fri, 7 Jul 2017 09:59:25 -0700 (PDT)
Received: from hardbaer.com (mail.hardbaer.com [91.250.101.142]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 74FE213173B for <usefor@ietf.org>; Fri, 7 Jul 2017 09:59:25 -0700 (PDT)
X-No-Relay: not in my network
X-No-Relay: not in my network
X-No-Relay: not in my network
Received: from WStation4 (business-092-079-177-146.static.arcor-ip.net [92.79.177.146]) by hardbaer.com (Postfix) with ESMTPSA id EEE2428004B; Fri, 7 Jul 2017 18:59:23 +0200 (CEST)
Date: Fri, 7 Jul 2017 18:59:14 +0200
From: Michael =?ISO-8859-15?B?QuR1ZXJsZQ==?= <michael.baeuerle@stz-e.de>
To: Julien =?ISO-8859-15?B?yUxJRQ==?= <julien@trigofacile.com>
Cc: usefor@ietf.org, pkyzivat@alum.mit.edu
Message-ID: <20170707185914.06cfa0ac@WStation4>
In-Reply-To: <15001f4b-477e-1900-6d3b-d0635b9dad94@trigofacile.com>
References: <15001f4b-477e-1900-6d3b-d0635b9dad94@trigofacile.com>
Organization: STZ Elektronik
User-Agent: Claws-Mail/3.13.1
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha512; boundary="Sig_/BD0kenCxDXaWuQHILzTiCgw"; protocol="application/pgp-signature"
Archived-At: <https://mailarchive.ietf.org/arch/msg/usefor/UwZ5AyOod6qDTdXAIeV8GZr17x4>
Subject: Re: [usefor] Issue with ABNF grammar in RFC 5536
X-BeenThere: usefor@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "Ongoing discussion of usefor issues." <usefor.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/usefor>, <mailto:usefor-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/usefor/>
List-Post: <mailto:usefor@ietf.org>
List-Help: <mailto:usefor-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/usefor>, <mailto:usefor-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 07 Jul 2017 16:59:27 -0000

Julien ÉLIE wrote:
> 
> Hi all,
> 
> Paul Kyzivat noticed in the IETF Gen-ART mailing-list
>    https://www.ietf.org/mail-archive/web/gen-art/current/msg14921.html
> that there is an issue in the ABNF of RFC 5536 (USEFOR).
> 
> RFC 5536 defines the following extension:
> 
>     fields          =/ *( approved /
>                           archive /
>                           control /
>                           distribution /
>                           expires /
>                           followup-to /
>                           injection-date /
>                           injection-info /
>                           lines /
>                           newsgroups /
>                           organization /
>                           path /
>                           summary /
>                           supersedes /
>                           user-agent /
>                           xref )
> 
> to the following element in RFC 5322:
> 
>     fields          =   *(trace
>                           *optional-field /
>                           *(resent-date /
>                            resent-from /
>                            resent-sender /
>                            resent-to /
>                            resent-cc /
>                            resent-bcc /
>                            resent-msg-id))
>                         *(orig-date /
>                         from /
>                         sender /
>                         reply-to /
>                         to /
>                         cc /
>                         bcc /
>                         message-id /
>                         in-reply-to /
>                         references /
>                         subject /
>                         comments /
>                         keywords /
>                         optional-field)

Hi Julien,

there is Erratum 2950 (Status: Held for Document Update) that specify
it like this:

   fields          =   *(trace
                         *optional-field /
                         1*(resent-date /
                           resent-from /
                           resent-sender /
                           resent-to /
                           resent-cc /
                           resent-bcc /
                           resent-msg-id))
                       *(orig-date /
                       from /
                       sender /
                       reply-to /
                       to /
                       cc /
                       bcc /
                       message-id /
                       in-reply-to /
                       references /
                       subject /
                       comments /
                       keywords /
                       optional-field)

> and a message is defined this way:
> 
>     message         =   (fields / obs-fields)
>                         [CRLF body]
> 
> 
> 
> It appears that the extension done in RFC 5536 is wrong because of how 
> "fields" is constructed in RFC 5322; as a matter of fact, (*a *b) in RFC 
> 5322 is extended to (*a *b) / *c in RFC 5536 whereas (*a *b *c) was wanted.
> 
> I believe an erratum should be filled to RFC 5536.  Maybe by just 
> changing the wording in Section 3:
> 
>     The following news header fields extend those defined in Section 3.6
>     of [RFC5322]:
> 
>       fields        =/ *( approved /
>                           archive /
>                           control /
>                           distribution /
>                           expires /
>                           followup-to /
>                           injection-date /
>                           injection-info /
>                           lines /
>                           newsgroups /
>                           organization /
>                           path /
>                           summary /
>                           supersedes /
>                           user-agent /
>                           xref )
> 
> to:
> 
>     The following news header fields are defined by this document:
> 
>       news-fields    =    approved /
>                           archive /
>                           control /
>                           distribution /
>                           expires /
>                           followup-to /
>                           injection-date /
>                           injection-info /
>                           lines /
>                           newsgroups /
>                           organization /
>                           path /
>                           summary /
>                           supersedes /
>                           user-agent /
>                           xref
> 
>     The definition of message in Section 3.5 of [RFC5322] is changed to:
> 
>       message       =   *(fields / obs-fields / news-fields)
                          ^
>                         [CRLF body]

Wouldn't this asterisk introduce the same "infinite loop of empty
strings" situation as in the erratum noted above?


-- 
Michael Bäuerle