mirror of
https://github.com/vee1e/mitmproxy.git
synced 2026-09-03 19:27:14 +00:00
Improve robustness against invalid data.
This commit is contained in:
parent
4cb0e5bfb4
commit
e5bded7dee
3 changed files with 12 additions and 4 deletions
|
|
@ -104,7 +104,6 @@ def parse_request_line(request):
|
|||
return method, scheme, host, port, path, minor
|
||||
|
||||
|
||||
|
||||
class FileLike:
|
||||
def __init__(self, o):
|
||||
self.o = o
|
||||
|
|
@ -197,7 +196,10 @@ class ServerConnection:
|
|||
if not len(parts) == 3:
|
||||
raise ProxyError(502, "Invalid server response: %s."%line)
|
||||
proto, code, msg = parts
|
||||
code = int(code)
|
||||
try:
|
||||
code = int(code)
|
||||
except ValueError:
|
||||
raise ProxyError(502, "Invalid server response: %s."%line)
|
||||
headers = flow.Headers()
|
||||
headers.read(self.rfile)
|
||||
if code >= 100 and code <= 199:
|
||||
|
|
|
|||
|
|
@ -393,8 +393,11 @@ def parse_url(url):
|
|||
if not scheme:
|
||||
return None
|
||||
if ':' in netloc:
|
||||
host, port = string.split(netloc, ':')
|
||||
port = int(port)
|
||||
host, port = string.rsplit(netloc, ':', maxsplit=1)
|
||||
try:
|
||||
port = int(port)
|
||||
except ValueError:
|
||||
return None
|
||||
else:
|
||||
host = netloc
|
||||
if scheme == "https":
|
||||
|
|
|
|||
|
|
@ -216,6 +216,9 @@ class u_parse_url(libpry.AutoTree):
|
|||
s, h, po, pa = utils.parse_url("https://foo")
|
||||
assert po == 443
|
||||
|
||||
assert not utils.parse_url("https://foo:bar")
|
||||
assert not utils.parse_url("https://foo:")
|
||||
|
||||
tests = [
|
||||
uformat_timestamp(),
|
||||
uisBin(),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue