diff --git a/plugins/managesieve/Changelog b/plugins/managesieve/Changelog index 1e6011064..64542c6dc 100644 --- a/plugins/managesieve/Changelog +++ b/plugins/managesieve/Changelog @@ -1,6 +1,9 @@ +* version 5.1 [2012-06-21] +----------------------------------------------------------- - Fixed filter popup width (for non-english localizations) - Fixed tokenizer infinite loop on invalid script content - Larry skin support +- Fixed custom header name validity check, made RFC2822-compliant * version 5.0 [2012-01-05] ----------------------------------------------------------- diff --git a/plugins/managesieve/managesieve.php b/plugins/managesieve/managesieve.php index 486b3fb1d..70ef5f597 100644 --- a/plugins/managesieve/managesieve.php +++ b/plugins/managesieve/managesieve.php @@ -707,9 +707,12 @@ class managesieve extends rcube_plugin if (!count($headers)) $this->errors['tests'][$i]['header'] = $this->gettext('cannotbeempty'); else { - foreach ($headers as $hr) - if (!preg_match('/^[a-z0-9-]+$/i', $hr)) + foreach ($headers as $hr) { + // RFC2822: printable ASCII except colon + if (!preg_match('/^[\x21-\x39\x41-\x7E]+$/i', $hr)) { $this->errors['tests'][$i]['header'] = $this->gettext('forbiddenchars'); + } + } } if (empty($this->errors['tests'][$i]['header'])) diff --git a/plugins/managesieve/package.xml b/plugins/managesieve/package.xml index 207793958..1c60a7cc9 100644 --- a/plugins/managesieve/package.xml +++ b/plugins/managesieve/package.xml @@ -17,9 +17,9 @@ alec@alec.pl yes - 2012-01-05 + 2012-06-21 - 5.0 + 5.1 5.0 @@ -38,34 +38,51 @@ + + + + + + + + + + + + + + + + +