Skip to content

Commit cb2b648

Browse files
authored
Handle T-E edge cases #43664 (#43669)
1 parent 2e4bebb commit cb2b648

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

src/Servers/Kestrel/Core/src/Internal/Http/HttpHeaders.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -561,6 +561,14 @@ public static TransferCoding GetFinalTransferCoding(StringValues transferEncodin
561561
offset += sizeof(uint) / 2;
562562
transferEncodingOptions = TransferCoding.Chunked;
563563
}
564+
else
565+
{
566+
transferEncodingOptions = TransferCoding.Other;
567+
}
568+
}
569+
else
570+
{
571+
transferEncodingOptions = TransferCoding.Other;
564572
}
565573

566574
if ((uint)offset >= (uint)values.Length)

src/Servers/Kestrel/Core/test/HttpHeadersTests.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,9 @@ public void TestParseConnectionMultipleValues(string value1, string value2, int
174174
[InlineData(",, ", (int)(TransferCoding.None))]
175175
[InlineData(" , ,", (int)(TransferCoding.None))]
176176
[InlineData(" , , ", (int)(TransferCoding.None))]
177+
[InlineData("c", (int)(TransferCoding.Other))]
178+
[InlineData("z", (int)(TransferCoding.Other))]
179+
[InlineData("chunk", (int)(TransferCoding.Other))]
177180
[InlineData("chunked,", (int)(TransferCoding.Chunked))]
178181
[InlineData("chunked,,", (int)(TransferCoding.Chunked))]
179182
[InlineData("chunked, ", (int)(TransferCoding.Chunked))]
@@ -191,6 +194,14 @@ public void TestParseConnectionMultipleValues(string value1, string value2, int
191194
[InlineData("deflate, chunked", (int)(TransferCoding.Chunked))]
192195
[InlineData("gzip,chunked", (int)(TransferCoding.Chunked))]
193196
[InlineData("compress,,chunked", (int)(TransferCoding.Chunked))]
197+
[InlineData("chunked,c", (int)(TransferCoding.Other))]
198+
[InlineData("chunked,z", (int)(TransferCoding.Other))]
199+
[InlineData("chunked,zz", (int)(TransferCoding.Other))]
200+
[InlineData("chunked, z", (int)(TransferCoding.Other))]
201+
[InlineData("chunked, zz", (int)(TransferCoding.Other))]
202+
[InlineData("chunked,chunk", (int)(TransferCoding.Other))]
203+
[InlineData("z,chunked", (int)(TransferCoding.Chunked))]
204+
[InlineData("z, chunked", (int)(TransferCoding.Chunked))]
194205
[InlineData("chunkedchunked", (int)(TransferCoding.Other))]
195206
[InlineData("chunked2", (int)(TransferCoding.Other))]
196207
[InlineData("chunked 2", (int)(TransferCoding.Other))]

0 commit comments

Comments
 (0)