[Kde-pim] [PATCH] kioslaves/sieve: fix small managesieve protocol violations

Volker Krause vkrause at kde.org
Wed Aug 29 08:16:48 BST 2007


On Saturday 04 August 2007 13:35:01 Stephan Bosch wrote:
> Hello,
>
> I'm developing a managesieve server for the dovecot project
> (www.dovecot.org) and some of my users reported problems when using
> KMail as a client. I decided to investigate the problem myself and this
> resulted in a very small patch against the kioslaves/sieve implementation.
>
> The problems were the following:
>
> * When using TLS they could not login.
> * Retrieving scripts from the server always failed with a protocol error
> report
>
> Both problems were caused by deviations from the draft protocol
> specification. The specification states that after a successful STARTTLS
> the _server_ must reissue a capability response (as explained more
> clearly in version 07 of the specification). The current kioslave
> implementation sends a CAPABILITY command directly after TLS
> negotiation, which is unnecessary but in itself not a protocol
> violation. However, it does not expect the unsolicited capability
> listing from the server and aborts the login with an error. I reset the
> flag that causes an explicit CAPABILITY command to be sent and all is well.
>
> The second problem is caused by erroneous parsing of literal strings.
> The length specification is required to include a '+' character before
> the '}'. The kioslave implentation forgets this and failes to parse the
> contained integer. This was reported last year already in bug 122870
> (http://bugs.kde.org/show_bug.cgi?id=122870), but thus far this remained
> unconfirmed and unresolved.  I am not sure what timsieved currrently
> does, so you might  want to adapt the patch to allow both situations for
> the time being.
>
> When these issues were resolved, I continued testing KMail myself and I
> found another protocol-related problem. The managesieve server can
> choose to send either quoted or literal strings for any kind of
> response. The current kioslave implementation often makes assumptions on
> what type of string is going to be received, especially when handling
> errors. My server only sends literals when multi-line strings need to be
> sent, so a simple one-line error is sent as a quoted string. For
> instance, when an error occurs for the PUTSCRIPT command it is only
> reported to the user when the server presents it as a literal string.
> Otherwise a generic failure message is shown and the user is none the
> wiser. This patch only resolves this issue for the putscript command,
> because fixing this in all situations would make this simple patch way
> too invasive.
>
> This patch was made and tested against kdepim-3.5.6, but also applies
> cleanly to 3.5.7 since almost nothing changed in the kioslaves/sieve
> code between those releases. The patch can be downloaded at:
>
> http://sinas.rename-it.nl/~sirius/kdepim_sieve_patch.diff
>
> I hope you are willing to resolve these issues by merging my patch or
> something equivalent in future releases.

Sorry for the late response to this. We had to revert this patch in the KDE 
PIM enterprise branch since it causes just the described symptomes with 
Cyrus. Could you test this patch with a Cyrus server and see if you can come 
up with a solution that works for both?

regards
Volker
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde-pim/attachments/20070829/a5959226/attachment.sig>
-------------- next part --------------
_______________________________________________
KDE PIM mailing list kde-pim at kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
KDE PIM home page at http://pim.kde.org/


More information about the kde-pim mailing list