Skip to content

Commit dcf0ba1

Browse files
authored
Handle invalid CRLF in header name. fixes #122 (#141)
1 parent 851a026 commit dcf0ba1

File tree

4 files changed

+11
-2
lines changed

4 files changed

+11
-2
lines changed

multipart/multipart.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1163,7 +1163,7 @@ def data_callback(name: str, remaining: bool = False) -> None:
11631163
# If we've reached a CR at the beginning of a header, it means
11641164
# that we've reached the second of 2 newlines, and so there are
11651165
# no more headers to parse.
1166-
if c == CR:
1166+
if c == CR and index == 0:
11671167
delete_mark("header_field")
11681168
state = MultipartState.HEADERS_ALMOST_DONE
11691169
i += 1
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
------WebKitFormBoundaryTkr3kCBQlBe1nrhc
2+
Content-
3+
isposition: form-data; name="field"
4+
5+
This is a test.
6+
------WebKitFormBoundaryTkr3kCBQlBe1nrhc--
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
boundary: ----WebKitFormBoundaryTkr3kCBQlBe1nrhc
2+
expected:
3+
error: 50
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
boundary: ----WebKitFormBoundaryTkr3kCBQlBe1nrhc
22
expected:
3-
error: 51
3+
error: 50

0 commit comments

Comments
 (0)