Issue #26586: Handle excessive header fields in http.server, by Xiang Zhang

This commit is contained in:
Martin Panter 2016-04-03 00:45:46 +00:00
parent af8363926a
commit acc03195b0
3 changed files with 18 additions and 0 deletions

View file

@ -858,6 +858,13 @@ def test_header_length(self):
self.assertFalse(self.handler.get_called)
self.assertEqual(self.handler.requestline, 'GET / HTTP/1.1')
def test_too_many_headers(self):
result = self.send_typical_request(
b'GET / HTTP/1.1\r\n' + b'X-Foo: bar\r\n' * 101 + b'\r\n')
self.assertEqual(result[0], b'HTTP/1.1 431 Too many headers\r\n')
self.assertFalse(self.handler.get_called)
self.assertEqual(self.handler.requestline, 'GET / HTTP/1.1')
def test_close_connection(self):
# handle_one_request() should be repeatedly called until
# it sets close_connection