From 7afb2c05f6d80def39dcb34f25f8153b67ce28c8 Mon Sep 17 00:00:00 2001 From: Bert JW Regeer Date: Thu, 21 Apr 2022 11:48:35 -0600 Subject: [PATCH] Fix bug in calculation of received headers This would manifest itself is the headers were sent in multiple individual packets that were processed after each other, the calculation for max header size would be wrong and Waitress would incorrectly return RequestHeaderFieldsTooLarge. --- src/waitress/parser.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/waitress/parser.py b/src/waitress/parser.py index ff16a402..071550ba 100644 --- a/src/waitress/parser.py +++ b/src/waitress/parser.py @@ -103,8 +103,8 @@ def received(self, data): # If the headers have ended, and we also have part of the body # message in data we still want to validate we aren't going # over our limit for received headers. - self.header_bytes_received += index consumed = datalen - (len(s) - index) + self.header_bytes_received += consumed else: self.header_bytes_received += datalen consumed = datalen