Skip to content

Commit e1487ea

Browse files
authored
Handle T-E edge cases #43664 (#43671)
1 parent 68b965d commit e1487ea

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
@@ -564,6 +564,14 @@ public static TransferCoding GetFinalTransferCoding(StringValues transferEncodin
564564
offset += sizeof(uint) / 2;
565565
transferEncodingOptions = TransferCoding.Chunked;
566566
}
567+
else
568+
{
569+
transferEncodingOptions = TransferCoding.Other;
570+
}
571+
}
572+
else
573+
{
574+
transferEncodingOptions = TransferCoding.Other;
567575
}
568576

569577
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)