Problem in Pigeonhole sievec
Dear all,
I stumbled upon the following behaviour of Pigeonhole, which I consider to be problematic. A user deployed a Sieve script similar to the following snippet
if not anyof (address :is ["from","cc"] ["...", ..., "...@... GARBAGE", ...] { fileinto "inbox.Trash"; stop; }
Note the extra line break before GARBAGE. This script is obviously broken, but gets accepted by sievec and only fails later, at runtime with
line X: error: found stray carriage-return (CR) character in quoted string started at line X.
So, the question is whether line breaks in strings are allowed in general and the runtime error is unavoidable, or should sievec return an error?
Best regards, Thorsten
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Mon, 28 May 2018, Thorsten Hater wrote:
I stumbled upon the following behaviour of Pigeonhole, which I consider to be problematic. A user deployed a Sieve script similar to the following snippet
if not anyof (address :is ["from","cc"] ["...", ..., "...@... GARBAGE", ...] { fileinto "inbox.Trash"; stop; }
Note the extra line break before GARBAGE. This script is obviously broken, but gets accepted by sievec and only fails later, at runtime with
line X: error: found stray carriage-return (CR) character in quoted string started at line X.
So, the question is whether line breaks in strings are allowed in general and the runtime error is unavoidable, or should sievec return an error?
https://www.ietf.org/rfc/rfc3028.txt first hit of quoted-string
quoted-string = DQUOTE *CHAR DQUOTE
;; in general, \ CHAR inside a string maps to CHAR
;; so \" maps to " and \\ maps to
;; note that newlines and other characters are all allowed
;; strings
So, it's correct. But the address should reject the CR. I guess, Pigeonhole triggers the error for sanity purpose?
Steffen Kaiser -----BEGIN PGP SIGNATURE----- Version: GnuPG v1
iQEVAwUBWwvuQsQnQQNheMxiAQILoAgAyRjSObVJkrAmxzyLau9gIvvMOM2R++HP pwsptIQ72xoYJOO/Lnd1TmfKTE9QYwtOGkSKr8tiJVD8JOpL5fUbB6mZNOTXkAv0 TOW2gA7v06nXq6K0ETum8anoKTIF0o4j5aQJ5yQ5CrzlVQqUwTsf4mVVNqK0hn/L X5RAuCVQyx6sdvCB+lSOGmLv/fT8+xHS03U6jzCp/Yov5OKsT29oOOF6dXWR49Iw BL+DOd9T37hHF6ENp4A5wxX6iCMKLsWL0f5xTcxwRK5GOiCDoUH6ZpiywD0PtCuT VlusmbIByGON7foNlCPusTVcfq8GenMhOrgFcbp1PfRrShIQgsjWSg== =vgR1 -----END PGP SIGNATURE-----
Thanks for the feedback, I simply expected that addresses and simple strings were treated differently.
Thorsten
On Mon, May 28, 2018 at 1:55 PM, Steffen Kaiser skdovecot@inf.h-brs.de wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Mon, 28 May 2018, Thorsten Hater wrote:
I stumbled upon the following behaviour of Pigeonhole, which I consider
to be problematic. A user deployed a Sieve script similar to the following snippet
if not anyof (address :is ["from","cc"] ["...", ..., "...@... GARBAGE", ...] { fileinto "inbox.Trash"; stop; }
Note the extra line break before GARBAGE. This script is obviously broken, but gets accepted by sievec and only fails later, at runtime with
line X: error: found stray carriage-return (CR) character in quoted string started at line X.
So, the question is whether line breaks in strings are allowed in general and the runtime error is unavoidable, or should sievec return an error?
https://www.ietf.org/rfc/rfc3028.txt first hit of quoted-string
quoted-string = DQUOTE *CHAR DQUOTE ;; in general, \ CHAR inside a string maps to CHAR ;; so \" maps to " and \\ maps to
;; note that newlines and other characters are all allowed ;; stringsSo, it's correct. But the address should reject the CR. I guess, Pigeonhole triggers the error for sanity purpose?
- -- Steffen Kaiser -----BEGIN PGP SIGNATURE----- Version: GnuPG v1
iQEVAwUBWwvuQsQnQQNheMxiAQILoAgAyRjSObVJkrAmxzyLau9gIvvMOM2R++HP pwsptIQ72xoYJOO/Lnd1TmfKTE9QYwtOGkSKr8tiJVD8JOpL5fUbB6mZNOTXkAv0 TOW2gA7v06nXq6K0ETum8anoKTIF0o4j5aQJ5yQ5CrzlVQqUwTsf4mVVNqK0hn/L X5RAuCVQyx6sdvCB+lSOGmLv/fT8+xHS03U6jzCp/Yov5OKsT29oOOF6dXWR49Iw BL+DOd9T37hHF6ENp4A5wxX6iCMKLsWL0f5xTcxwRK5GOiCDoUH6ZpiywD0PtCuT VlusmbIByGON7foNlCPusTVcfq8GenMhOrgFcbp1PfRrShIQgsjWSg== =vgR1 -----END PGP SIGNATURE-----
Hi,
Can you send me that script?
Regards,
Stephan. Op 28-5-2018 om 13:07 schreef Thorsten Hater:
Dear all,
I stumbled upon the following behaviour of Pigeonhole, which I consider to be problematic. A user deployed a Sieve script similar to the following snippet
if not anyof (address :is ["from","cc"] ["...", ..., "...@... GARBAGE", ...] { fileinto "inbox.Trash"; stop; }
Note the extra line break before GARBAGE. This script is obviously broken, but gets accepted by sievec and only fails later, at runtime with line X: error: found stray carriage-return (CR) character in quoted string started at line X. So, the question is whether line breaks in strings are allowed in general and the runtime error is unavoidable, or should sievec return an error?
Best regards, Thorsten
participants (3)
-
Steffen Kaiser
-
Stephan Bosch
-
Thorsten Hater