mirror of
https://github.com/Grasscutters/mitmproxy.git
synced 2024-11-23 00:01:36 +00:00
Merge pull request #2868 from kira0204/data-crash
Fix crashing when editing form with random data, fix #2794
This commit is contained in:
commit
a2740ee4ae
@ -429,10 +429,7 @@ class Request(message.Message):
|
||||
def _get_urlencoded_form(self):
|
||||
is_valid_content_type = "application/x-www-form-urlencoded" in self.headers.get("content-type", "").lower()
|
||||
if is_valid_content_type:
|
||||
try:
|
||||
return tuple(mitmproxy.net.http.url.decode(self.content.decode()))
|
||||
except ValueError:
|
||||
pass
|
||||
return tuple(mitmproxy.net.http.url.decode(self.get_text(strict=False)))
|
||||
return ()
|
||||
|
||||
def _set_urlencoded_form(self, form_data):
|
||||
@ -441,7 +438,7 @@ class Request(message.Message):
|
||||
This will overwrite the existing content if there is one.
|
||||
"""
|
||||
self.headers["content-type"] = "application/x-www-form-urlencoded"
|
||||
self.content = mitmproxy.net.http.url.encode(form_data, self.content.decode()).encode()
|
||||
self.content = mitmproxy.net.http.url.encode(form_data, self.get_text(strict=False)).encode()
|
||||
|
||||
@property
|
||||
def urlencoded_form(self):
|
||||
|
@ -351,10 +351,10 @@ class TestRequestUtils:
|
||||
request.headers["Content-Type"] = "application/x-www-form-urlencoded"
|
||||
assert list(request.urlencoded_form.items()) == [("foobar", "baz")]
|
||||
request.raw_content = b"\xFF"
|
||||
assert len(request.urlencoded_form) == 0
|
||||
assert len(request.urlencoded_form) == 1
|
||||
|
||||
def test_set_urlencoded_form(self):
|
||||
request = treq()
|
||||
request = treq(content=b"\xec\xed")
|
||||
request.urlencoded_form = [('foo', 'bar'), ('rab', 'oof')]
|
||||
assert request.headers["Content-Type"] == "application/x-www-form-urlencoded"
|
||||
assert request.content
|
||||
|
Loading…
Reference in New Issue
Block a user