summaryrefslogtreecommitdiffstats
path: root/Lib/wsgiref
diff options
context:
space:
mode:
authorSenthil Kumaran <senthil@uthcode.com>2014-09-17 08:31:47 (GMT)
committerSenthil Kumaran <senthil@uthcode.com>2014-09-17 08:31:47 (GMT)
commit86c9e1877cc287b602e06f3627cda2d81cbd176a (patch)
tree78a3cae39e1115df4938744d8791dacd473e392d /Lib/wsgiref
parentaa72b1b448d09ddbff737ee1a3e0cb40cb6ca047 (diff)
parente025b52db0651081eb08978efa850269c8282073 (diff)
downloadcpython-86c9e1877cc287b602e06f3627cda2d81cbd176a.zip
cpython-86c9e1877cc287b602e06f3627cda2d81cbd176a.tar.gz
cpython-86c9e1877cc287b602e06f3627cda2d81cbd176a.tar.bz2
Merge from 3.3
Issue #22419: Limit the length of incoming HTTP request in wsgiref server to 65536 bytes.
Diffstat (limited to 'Lib/wsgiref')
-rw-r--r--Lib/wsgiref/simple_server.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/Lib/wsgiref/simple_server.py b/Lib/wsgiref/simple_server.py
index cd9751a..378b316 100644
--- a/Lib/wsgiref/simple_server.py
+++ b/Lib/wsgiref/simple_server.py
@@ -115,7 +115,14 @@ class WSGIRequestHandler(BaseHTTPRequestHandler):
def handle(self):
"""Handle a single HTTP request"""
- self.raw_requestline = self.rfile.readline()
+ self.raw_requestline = self.rfile.readline(65537)
+ if len(self.raw_requestline) > 65536:
+ self.requestline = ''
+ self.request_version = ''
+ self.command = ''
+ self.send_error(414)
+ return
+
if not self.parse_request(): # An error code has been sent, just exit
return