]> git.ipfire.org Git - thirdparty/tornado.git/commitdiff
Don't assume 'boundary' is last field in Content-Type header.
authorBen Darnell <ben@bendarnell.com>
Fri, 19 Nov 2010 22:04:53 +0000 (14:04 -0800)
committerBen Darnell <ben@bendarnell.com>
Fri, 19 Nov 2010 22:04:53 +0000 (14:04 -0800)
http://groups.google.com/group/python-tornado/browse_thread/thread/d0531e331c189c56#

Closes #172.

tornado/httpserver.py

index 42b5c866df78065b3c294c0a2214c5e88ff5f474..c9a424a366def8cef71b5bc297bf0884c52c6df9 100644 (file)
@@ -357,9 +357,12 @@ class HTTPConnection(object):
                         self._request.arguments.setdefault(name, []).extend(
                             values)
             elif content_type.startswith("multipart/form-data"):
-                if 'boundary=' in content_type:
-                    boundary = content_type.split('boundary=',1)[1]
-                    if boundary: self._parse_mime_body(boundary, data)
+                fields = content_type.split(";")
+                for field in fields:
+                    k, sep, v = field.partition("=")
+                    if k == "boundary" and v:
+                        self._parse_mime_body(v, data)
+                        break
                 else:
                     logging.warning("Invalid multipart/form-data")
         self.request_callback(self._request)