From: Ben Darnell Date: Sun, 18 Jan 2015 17:07:54 +0000 (-0500) Subject: Add a blanket try/except when parsing multipart form bodies. X-Git-Tag: v4.1.0b1~23 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=59491e968c8e03ce8c47a2b1584ae5f00b5721ab;p=thirdparty%2Ftornado.git Add a blanket try/except when parsing multipart form bodies. This mirrors the behavior for form-urlencoded bodies, as well as the handling of selected errors in parse_multipart_form_data. Closes #1267. --- diff --git a/tornado/httputil.py b/tornado/httputil.py index cd8dcd545..9c99b3efa 100644 --- a/tornado/httputil.py +++ b/tornado/httputil.py @@ -696,14 +696,17 @@ def parse_body_arguments(content_type, body, arguments, files, headers=None): if values: arguments.setdefault(name, []).extend(values) elif content_type.startswith("multipart/form-data"): - fields = content_type.split(";") - for field in fields: - k, sep, v = field.strip().partition("=") - if k == "boundary" and v: - parse_multipart_form_data(utf8(v), body, arguments, files) - break - else: - gen_log.warning("Invalid multipart/form-data") + try: + fields = content_type.split(";") + for field in fields: + k, sep, v = field.strip().partition("=") + if k == "boundary" and v: + parse_multipart_form_data(utf8(v), body, arguments, files) + break + else: + raise ValueError("multipart boundary not found") + except Exception as e: + gen_log.warning("Invalid multipart/form-data: %s", e) def parse_multipart_form_data(boundary, data, arguments, files):