mirror of
				https://github.com/django/django.git
				synced 2025-10-31 01:25:32 +00:00 
			
		
		
		
	Fixed #30227 -- Fixed crash on request without boundary in Content-Type.
This commit is contained in:
		| @@ -70,7 +70,7 @@ class MultiPartParser: | ||||
|         ctypes, opts = parse_header(content_type.encode('ascii')) | ||||
|         boundary = opts.get('boundary') | ||||
|         if not boundary or not cgi.valid_boundary(boundary): | ||||
|             raise MultiPartParserError('Invalid boundary in multipart: %s' % boundary.decode()) | ||||
|             raise MultiPartParserError('Invalid boundary in multipart: %s' % force_str(boundary)) | ||||
|  | ||||
|         # Content-Length should contain the length of the body we are about | ||||
|         # to receive. | ||||
|   | ||||
| @@ -5,6 +5,7 @@ from urllib.parse import urlencode | ||||
| from django.core.exceptions import DisallowedHost | ||||
| from django.core.handlers.wsgi import LimitedStream, WSGIRequest | ||||
| from django.http import HttpRequest, RawPostDataException, UnreadablePostError | ||||
| from django.http.multipartparser import MultiPartParserError | ||||
| from django.http.request import HttpHeaders, split_domain_port | ||||
| from django.test import RequestFactory, SimpleTestCase, override_settings | ||||
| from django.test.client import FakePayload | ||||
| @@ -476,6 +477,16 @@ class RequestsTests(SimpleTestCase): | ||||
|         }) | ||||
|         self.assertFalse(request.POST._mutable) | ||||
|  | ||||
|     def test_multipart_without_boundary(self): | ||||
|         request = WSGIRequest({ | ||||
|             'REQUEST_METHOD': 'POST', | ||||
|             'CONTENT_TYPE': 'multipart/form-data;', | ||||
|             'CONTENT_LENGTH': 0, | ||||
|             'wsgi.input': FakePayload(), | ||||
|         }) | ||||
|         with self.assertRaisesMessage(MultiPartParserError, 'Invalid boundary in multipart: None'): | ||||
|             request.POST | ||||
|  | ||||
|     def test_POST_connection_error(self): | ||||
|         """ | ||||
|         If wsgi.input.read() raises an exception while trying to read() the | ||||
|   | ||||
		Reference in New Issue
	
	Block a user