mirror of
https://github.com/frappe/gunicorn.git
synced 2026-01-14 11:09:11 +08:00
Fix LimitRequestLine check.
This commit is contained in:
parent
27a9d7d24f
commit
4fdfc3a76b
@ -164,15 +164,19 @@ class Request(Message):
|
|||||||
while True:
|
while True:
|
||||||
idx = data.find("\r\n")
|
idx = data.find("\r\n")
|
||||||
if idx >= 0:
|
if idx >= 0:
|
||||||
break
|
|
||||||
self.get_data(unreader, buf)
|
|
||||||
data = buf.getvalue()
|
|
||||||
|
|
||||||
# check if the request line is too large
|
# check if the request line is too large
|
||||||
|
if idx > self.limit_request_line > 0:
|
||||||
|
raise LimitRequestLine(idx, self.limit_request_line)
|
||||||
|
break
|
||||||
|
|
||||||
|
# check if chunk is too large before read next chunk
|
||||||
if len(data) - 2 > self.limit_request_line and \
|
if len(data) - 2 > self.limit_request_line and \
|
||||||
self.limit_request_line> 0 :
|
self.limit_request_line> 0 :
|
||||||
raise LimitRequestLine(len(data), self.limit_request_line)
|
raise LimitRequestLine(len(data), self.limit_request_line)
|
||||||
|
|
||||||
|
self.get_data(unreader, buf)
|
||||||
|
data = buf.getvalue()
|
||||||
|
|
||||||
self.parse_request_line(data[:idx])
|
self.parse_request_line(data[:idx])
|
||||||
buf = StringIO()
|
buf = StringIO()
|
||||||
buf.write(data[idx+2:]) # Skip \r\n
|
buf.write(data[idx+2:]) # Skip \r\n
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user