[Email-SIG] Problem Report for email.Utils.decode_rfc2231

Mark Sapiro msapiro at value.net
Sat Jul 8 00:45:04 CEST 2006


Georg Graf wrote:
>
>There are 2 assumptions in email.Utils.decode_rfc2231 I do not
>understand.
>
>Assumption 1: The string passed either has zero single-quotes or
>more than 1.
>
>Assumption 2: If the string has two or more single-quotes the
>meaning of the parts is different. I dont know rfc2231, so what
>do I write. But still it seems funny to me.


See <http://www.faqs.org/rfcs/rfc2231.html>

The single quotes are delimiters for character-set and language fields
for extended-parameters.


>Fact is in this mail (generated by a recent thunderbird version)
>there is only one single quote in the filename and the function
>fails, see below.
>
>My fix would be to write "if len(parts) != 3", but I'm interested
>what you say (it fixes this specific problem, I'd say).

Yes it does, but it doesn't fix the general problem because there could
be two single-quote (') characters in a non extended parameter value.

The standard is clear that the single-quote (') character is not
allowed in extended-values, but I think it is OK in non extended
values. The issue in email.Utils is that decode_rfc2231 should only be
called for extended parameters of the form

  name*=charset'language'value

or

  name*0*=charset'language'value

I.e. only when the '=' is immediately preceded by '*'.

The attached patch.txt file contains a very lightly tested patch that I
think will fix the problem.

-- 
Mark Sapiro <msapiro at value.net>       The highway is for gamblers,
San Francisco Bay Area, California    better use your sense - B. Dylan

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: patch.txt
Url: http://mail.python.org/pipermail/email-sig/attachments/20060707/65c68395/attachment.txt 


More information about the Email-SIG mailing list