From f8155d8fec6a16d7841f8102815cc939e68bad15 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Fri, 10 Jul 2015 12:44:16 -0400 Subject: [bug] workaround for off-by-one error on nested multipart For some reason that I haven't discovered yet, nested multipart is hitting an off-by-one error (that had been wrongly ammended in a previous commit, breaking many other cases but fixing the particular Mail.app sample I was working with). This is just a temporary hack to make all the current regression tests happy, but further investigation is needed to discover the cause of the off-by-one part retrieval solved and correctly documented. --- mail/src/leap/mail/mail.py | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'mail') diff --git a/mail/src/leap/mail/mail.py b/mail/src/leap/mail/mail.py index 0aede6b..772b6db 100644 --- a/mail/src/leap/mail/mail.py +++ b/mail/src/leap/mail/mail.py @@ -211,6 +211,16 @@ class MessagePart(object): raise TypeError sub_pmap = self._pmap.get("part_map", {}) + + # XXX BUG --- workaround. Subparts with more than 1 subparts + # need to get the requested index for the subpart decremented. + # Off-by-one error, should investigate which is the real reason and + # fix it, this is only a quick workaround. + num_parts = self._pmap.get("parts", 0) + if num_parts > 1: + part = part - 1 + # ------------------------------------------------------------- + try: part_map = sub_pmap[str(part)] except KeyError: -- cgit v1.2.3