Skip to content

Commit

Permalink
Fix parsing dot-staffed lines in multiline text (#5838)
Browse files Browse the repository at this point in the history
  • Loading branch information
alecpl committed Jul 3, 2017
1 parent 86a4d78 commit 8b61d6a
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 2 deletions.
1 change: 1 addition & 0 deletions CHANGELOG
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ CHANGELOG Roundcube Webmail
- Fix various issues when downloading files with names containing non-ascii chars, use RFC 2231 (#5772)
- Add Preferences > Mailbox View > Main Options > Layout (#5829)
- Password: Fix compatibility with PHP 7+ in cpanel_webmail driver (#5820)
- Managesieve: Fix parsing dot-staffed lines in multiline text (#5838)
- Fix decoding non-ascii attachment names from TNEF attachments (#5646, #5799)
- Fix uninitialized string offset in rcube_utils::bin2ascii() and make sure rcube_utils::random_bytes() result has always requested length (#5788)
- Fix bug where HTML messages with @media styles could moddify style of page body (#5811)
Expand Down
2 changes: 2 additions & 0 deletions plugins/managesieve/Changelog
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
- Fix parsing dot-staffed lines in multiline text (#5838)

* version 8.9 [2017-05-22]
-----------------------------------------------------------
- Fix handling of scripts with nested rules (#5540)
Expand Down
6 changes: 4 additions & 2 deletions plugins/managesieve/lib/Roundcube/rcube_sieve_script.php
Original file line number Diff line number Diff line change
Expand Up @@ -1277,11 +1277,13 @@ static function tokenize($str, $num = 0, &$position = 0)
$text .= substr($str, $position, $pos - $position);
$position = $pos + 2;

if ($str[$pos] == "\n"
|| ($str[$pos] == "\r" && $str[$pos + 1] == "\n")
if ($str[$position] == "\n"
|| ($str[$position] == "\r" && $str[$position + 1] == "\n")
) {
break;
}

$text .= "\n.";
}

// remove dot-stuffing
Expand Down
2 changes: 2 additions & 0 deletions plugins/managesieve/tests/src/parser_vacation
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ if header :contains "Subject" "vacation"
vacation :days 1 text:
# test
test test /* test */
..
..test
test
.
;
Expand Down

0 comments on commit 8b61d6a

Please sign in to comment.