diff options
| author | Carlton Gibson <carlton.gibson@noumenal.es> | 2022-05-10 12:12:17 +0200 |
|---|---|---|
| committer | Carlton Gibson <carlton@noumenal.es> | 2022-05-11 14:06:31 +0200 |
| commit | 34e2148fc725e7200050f74130d7523e3cd8507a (patch) | |
| tree | b4bc74515b1d4911c6c07d5cd7697c78eff91407 /django/http | |
| parent | 02dbf1667c6da61ea9346f7c9f174a158b896811 (diff) | |
Refs #33173 -- Removed use of deprecated cgi module.
https://peps.python.org/pep-0594/#cgi
Diffstat (limited to 'django/http')
| -rw-r--r-- | django/http/multipartparser.py | 6 | ||||
| -rw-r--r-- | django/http/request.py | 5 |
2 files changed, 6 insertions, 5 deletions
diff --git a/django/http/multipartparser.py b/django/http/multipartparser.py index f52ff7619e..308fbfa385 100644 --- a/django/http/multipartparser.py +++ b/django/http/multipartparser.py @@ -6,7 +6,6 @@ file upload handlers for processing. """ import base64 import binascii -import cgi import collections import html from urllib.parse import unquote @@ -20,6 +19,7 @@ from django.core.exceptions import ( from django.core.files.uploadhandler import SkipFile, StopFutureHandlers, StopUpload from django.utils.datastructures import MultiValueDict from django.utils.encoding import force_str +from django.utils.regex_helper import _lazy_re_compile __all__ = ("MultiPartParser", "MultiPartParserError", "InputStreamExhausted") @@ -49,6 +49,8 @@ class MultiPartParser: and returns a tuple of ``(MultiValueDict(POST), MultiValueDict(FILES))``. """ + boundary_re = _lazy_re_compile(rb"[ -~]{0,200}[!-~]") + def __init__(self, META, input_data, upload_handlers, encoding=None): """ Initialize the MultiPartParser object. @@ -77,7 +79,7 @@ class MultiPartParser: % force_str(content_type) ) boundary = opts.get("boundary") - if not boundary or not cgi.valid_boundary(boundary): + if not boundary or not self.boundary_re.fullmatch(boundary): raise MultiPartParserError( "Invalid boundary in multipart: %s" % force_str(boundary) ) diff --git a/django/http/request.py b/django/http/request.py index c25fa4379a..4b160bc5f4 100644 --- a/django/http/request.py +++ b/django/http/request.py @@ -1,4 +1,3 @@ -import cgi import codecs import copy from io import BytesIO @@ -22,7 +21,7 @@ from django.utils.datastructures import ( ) from django.utils.encoding import escape_uri_path, iri_to_uri from django.utils.functional import cached_property -from django.utils.http import is_same_domain +from django.utils.http import is_same_domain, parse_header_parameters from django.utils.regex_helper import _lazy_re_compile from .multipartparser import parse_header @@ -97,7 +96,7 @@ class HttpRequest: def _set_content_type_params(self, meta): """Set content_type, content_params, and encoding.""" - self.content_type, self.content_params = cgi.parse_header( + self.content_type, self.content_params = parse_header_parameters( meta.get("CONTENT_TYPE", "") ) if "charset" in self.content_params: |
