Aleksander Machniak
2013-10-08 5251ec3e3815f9a4561d18cd5808769210e09434
Workaround cyrus-murder bug in SETANNOTATION arguments handling
1 files modified
11 ■■■■■ changed files
program/lib/Roundcube/rcube_imap_generic.php 11 ●●●●● patch | view | raw | blame | history
program/lib/Roundcube/rcube_imap_generic.php
@@ -48,6 +48,8 @@
        '*'        => '\\*',
    );
    public static $mupdate;
    private $fp;
    private $host;
    private $logged = false;
@@ -3156,6 +3158,11 @@
        }
        foreach ($data as $entry) {
            // Workaround cyrus-murder bug, the entry[2] string needs to be escaped
            if (self::$mupdate) {
                $entry[2] = addcslashes($entry[2], '\\"');
            }
            // ANNOTATEMORE drafts before version 08 require quoted parameters
            $entries[] = sprintf('%s (%s %s)', $this->escape($entry[0], true),
                $this->escape($entry[1], true), $this->escape($entry[2], true));
@@ -3720,6 +3727,10 @@
            $this->prefs['literal+'] = true;
        }
        if (preg_match('/(\[| )MUPDATE=.*/', $str)) {
            self::$mupdate = true;
        }
        if ($trusted) {
            $this->capability_readed = true;
        }