[Tickets #14199] Decoding of base64 encoded Kolab (.xml) objects is broken
noreply at bugs.horde.org
noreply at bugs.horde.org
Wed Dec 16 15:03:52 UTC 2015
DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED.
Ticket URL: https://bugs.horde.org/ticket/14199
------------------------------------------------------------------------------
Ticket | 14199
Created By | mike.gabriel at das-netzwerkteam.de
Summary | Decoding of base64 encoded Kolab (.xml) objects is
| broken
Queue | Kolab
Type | Bug
State | Unconfirmed
Priority | 3. High
Milestone |
Patch | 1
Owners |
------------------------------------------------------------------------------
mike.gabriel at das-netzwerkteam.de (2015-12-16 15:03) wrote:
Kolab groupware objects are stored as XML files / MIME attachments
in mails on Kolab servers. Retrieving Kolab groupware objects means:
retrieving message from an IMAP server, finding the Kolab XML file in
the MIME attachment(s) of that mail and parse the contained (probably
transfer-encoded) XML DOM tree.
The code in Kolab_Storage_Object decodes MIME attachments containing
Kolab XML objects twice(!). The first decoding step (by a call to
Horde_Imap_Data_Fetch::getBodyPart()) decodes from the MIME
attachment's transfer-encoding to 8bit encoding. The second decoding
step is--by design--actually a non-decoding step, and rather happens
by accident in Horde_Mime_Part::setContents(). Even worse, it seems
that the second encoding step defaults to the MIME attachments
transfer encoding (base64), which has already been decoded to 8bit
encoding.
So what happens with Kolab MIME attachments with base64 transfer
encoding: they get base64-decoded twice. Which, of course, fails.
Without the provided patch applied, this results in:
* Saving failures of events, tasks, etc. if they contain umlauts
and already contained umlauts when opening them.
* Events, tasks, contacts, etc. not being shown on Kolab shared
folders. People that a certain Kolab container (calendar, address book,
task list) is shared with, cannot see events, tasks, contacts, if
the underlying Kolab XML object's MIME attachment is stored with base64
transfer encoding.
* Reproduce:
- create task with title "TEST" (saving works ok)
- modify task, rename title to TÄST (saving works ok)
- modify task again: rename title to TEST (or TÖST, does not
matter): saving fails
- the task named "TÄST" is now immutable and not visible anymore
to other people
how share the task list that task item is in
The error message, btw., is very similar to what has been reported here:
https://bugs.horde.org/ticket/13865
"""
Failed writing the Kolab object: Failed parsing Kolab
object input data of type string! Input was: <some-weird-characters>
"""
mike.gabriel at das-netzwerkteam.de (2015-12-16 15:03) uploaded:
1001_Kolab_fix-decoding-of-base64-encoded-kolab-objects.patch
https://bugs.horde.org/h/services/download/?app=whups&actionID=download_file&file=1001_Kolab_fix-decoding-of-base64-encoded-kolab-objects.patch&ticket=14199&fn=%2F1001_Kolab_fix-decoding-of-base64-encoded-kolab-objects.patch
More information about the bugs
mailing list