Closed
Bug 684508
Opened 13 years ago
Closed 13 years ago
Line breaks in internet-cited text break UTF-8 quoted-printable characters
Categories
(Thunderbird :: Message Compose Window, defect)
Tracking
(Not tracked)
RESOLVED
FIXED
Thunderbird 10.0
People
(Reporter: dds, Assigned: dds)
Details
Attachments
(2 files)
7.31 KB,
application/octet-stream
|
Details | |
596 bytes,
patch
|
Bienvenu
:
review+
|
Details | Diff | Splinter Review |
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.16) Gecko/20101125 Thunderbird/3.0.11
In a non-HTML reply to a message containing long lines with non-ASCII characters the internet-cited (>) line of the original text has a newline splitting UTF-8 quoted-printable characters in two. This results in two illegal characters appearing in the mail message body. In Thunderbird these appear with a question mark (?). When Apple Mail displays such a message it fails to decode its contents as UTF-8 displaying it as gibberish.
Reproducible: Always
Steps to Reproduce:
1. Create a plain-text UTF-8 encoded message containing a line of 1000 non-ASCII characters
(e.g. αααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααα)
2. Send message to yourself
3. Reply to the message
4. Examine the sent message in the sent folder or the Outbox
5. The message will contain lines like the following
> ααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααααα�
�α
Here is one line of the problematic internet-cited message, with the problem marked with "<------- ERROR"
> =CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=
=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=
=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=
=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=
=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=
=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=
=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=
=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=
=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=
=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=
=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=
=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=
=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=
=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=
=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=
=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=
=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=
=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=
=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=
=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=
=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=
=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=
=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=
=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=
=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=
=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=
=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=
=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=
=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=
=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=
=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=
=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=
=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=
=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=
=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=
=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=
=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=
=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=
=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=
=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE=B1=CE <------- ERROR
=B1=CE=B1
>
Assignee | ||
Comment 1•13 years ago
|
||
This patch increases LINE_BREAK_MAX from 990 to 1000 - MSG_LINEBREAK_LEN i.e. to 998, which is the correct value. The previous conservative value would break lines that were correctly crafted during preceding steps to be within the standard-imposed limit of 998 chars (plus CR/LF) by inserting unneeded line breaks. These could be inserted at the wrong place, for instance breaking a UTF-8 pair in half. EnsureLineBreaks doesn't have enough knowledge about the body's encoding, as it deals with plain bytes. Therefore, it should avoid inserting line breaks unless absolutely necessary.
Attachment #559756 -
Flags: review?(dbienvenu)
Updated•13 years ago
|
Assignee: nobody → dds
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
Comment 2•13 years ago
|
||
Comment on attachment 559756 [details] [diff] [review]
Fix bug by replacing conservative line length limit with the exact value
How common is this? It seems like it would be exceedingly rare.
Attachment #559756 -
Flags: review?(dbienvenu) → review+
Updated•13 years ago
|
Keywords: checkin-needed
Assignee | ||
Comment 3•13 years ago
|
||
(In reply to David :Bienvenu from comment #2)
> How common is this? It seems like it would be exceedingly rare.
I get it relatively often (20% of the time) when replying to email composed in Greek by an Apple MUA. This MUA merges paragraphs sent in UTF-8 quoted printable flowed format into one long line, which then triggers the bug.
Comment 4•13 years ago
|
||
Status: ASSIGNED → RESOLVED
Closed: 13 years ago
Keywords: checkin-needed
Resolution: --- → FIXED
Target Milestone: --- → Thunderbird 10.0
You need to log in
before you can comment on or make changes to this bug.
Description
•