]> granicus.if.org Git - python/commitdiff
Merged revisions 80062 via svnmerge from
authorR. David Murray <rdmurray@bitdance.com>
Tue, 13 Apr 2010 21:05:24 +0000 (21:05 +0000)
committerR. David Murray <rdmurray@bitdance.com>
Tue, 13 Apr 2010 21:05:24 +0000 (21:05 +0000)
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r80062 | r.david.murray | 2010-04-13 16:57:40 -0400 (Tue, 13 Apr 2010) | 2 lines

  Issue #5277: Fix quote counting when parsing RFC 2231 encoded parameters.
........

Lib/email/message.py
Lib/email/test/test_email.py
Misc/ACKS
Misc/NEWS

index db09deefe26b5e619f056436c8a8086ac4a8c6d2..26dacf41fe316407aae0e36201dc6c06a06188a0 100644 (file)
@@ -62,7 +62,7 @@ def _parseparam(s):
     while s[:1] == ';':
         s = s[1:]
         end = s.find(';')
-        while end > 0 and s.count('"', 0, end) % 2:
+        while end > 0 and (s.count('"', 0, end) - s.count('\\"', 0, end)) % 2:
             end = s.find(';', end + 1)
         if end < 0:
             end = len(s)
index d66519e31bdc36802b0a2112c2c5c1248a5ad87f..7c15a7cfe87416eb7b1d013c24c2ee7a811d61a8 100644 (file)
@@ -338,6 +338,14 @@ class TestMessageAPI(TestEmailBase):
         self.assertEqual(msg.get_param('name', unquote=False),
                          '"Jim&amp;&amp;Jill"')
 
+    def test_get_param_with_quotes(self):
+        msg = email.message_from_string(
+            'Content-Type: foo; bar*0="baz\\"foobar"; bar*1="\\"baz"')
+        self.assertEqual(msg.get_param('bar'), 'baz"foobar"baz')
+        msg = email.message_from_string(
+            "Content-Type: foo; bar*0=\"baz\\\"foobar\"; bar*1=\"\\\"baz\"")
+        self.assertEqual(msg.get_param('bar'), 'baz"foobar"baz')
+
     def test_has_key(self):
         msg = email.message_from_string('Header: exists')
         self.failUnless(msg.has_key('header'))
index 31edd7475b108612b8bb6400ab619a35ff46caad..1caa20f4c943fd9940f246acb094ec6f7ca06414 100644 (file)
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -149,6 +149,7 @@ Greg Couch
 Steve Cousins
 Alex Coventry
 Matthew Dixon Cowles
+Ryan Coyner
 Christopher A. Craig
 Laura Creighton
 Simon Cross
@@ -627,6 +628,7 @@ Hajime Saitou
 Rich Salz
 Kevin Samborn
 Ilya Sandler
+Mark Sapiro
 Ty Sarna
 Ben Sayer
 Michael Scharf
index 5bdce3350f42941caec3880993d24a6caea2e15c..15beb8043e2294cfd8295116fe95bb820fed0f37 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -28,6 +28,8 @@ Core and Builtins
 Library
 -------
 
+- Issue #5277: Fix quote counting when parsing RFC 2231 encoded parameters.
+
 - Issue #8179: Fix macpath.realpath() on a non-existing path.
 
 - Issue #8310: Allow dis to examine new style classes.