diff --git a/src/waitress/receiver.py b/src/waitress/receiver.py index 2f0b734a..76633552 100644 --- a/src/waitress/receiver.py +++ b/src/waitress/receiver.py @@ -135,7 +135,6 @@ def received(self, s): line = s[:pos] s = s[pos + 2 :] self.control_line = b"" - line = line.strip() if line: # Begin a new chunk. @@ -153,9 +152,6 @@ def received(self, s): line = line[:semi] - # Remove any whitespace - line = line.strip() - if not ONLY_HEXDIG_RE.match(line): self.error = BadRequest("Invalid chunk size") self.all_chunks_received = True @@ -164,7 +160,7 @@ def received(self, s): # Can not fail due to matching against the regular # expression above - sz = int(line.strip(), 16) # hexadecimal + sz = int(line, 16) # hexadecimal if sz > 0: # Start a new chunk. diff --git a/tests/test_receiver.py b/tests/test_receiver.py index 8e43cc86..d160cac4 100644 --- a/tests/test_receiver.py +++ b/tests/test_receiver.py @@ -262,7 +262,9 @@ def test_received_valid_extensions(self, valid_extension): assert result == len(data) assert inst.error == None - @pytest.mark.parametrize("invalid_size", [b"0x04", b"+0x04", b"x04", b"+04"]) + @pytest.mark.parametrize( + "invalid_size", [b"0x04", b"+0x04", b"x04", b"+04", b" 04", b" 0x04"] + ) def test_received_invalid_size(self, invalid_size): from waitress.utilities import BadRequest