mirror of
https://github.com/spring-projects/spring-framework.git
synced 2026-09-17 16:39:29 +00:00
Consistent maxPartSize check in PartEventHttpMessageReader
Closes gh-37028
This commit is contained in:
committed by
Brian Clozel
parent
9312e25e24
commit
1c77e241e6
+3
@@ -188,6 +188,9 @@ public class PartEventHttpMessageReader extends LoggingCodecSupport implements H
|
||||
if (this.maxPartSize == -1) {
|
||||
maxSize = this.maxInMemorySize;
|
||||
}
|
||||
else if (this.maxInMemorySize == -1) {
|
||||
maxSize = (int) Math.min(Integer.MAX_VALUE, this.maxPartSize);
|
||||
}
|
||||
else {
|
||||
// maxInMemorySize is an int, so we can safely cast the long result of Math.min
|
||||
maxSize = (int) Math.min(this.maxInMemorySize, this.maxPartSize);
|
||||
|
||||
+15
@@ -255,6 +255,21 @@ class PartEventHttpMessageReaderTests extends AbstractLeakCheckingTests {
|
||||
.verify();
|
||||
}
|
||||
|
||||
@Test
|
||||
void partSizeTooLargeWithUnlimitedMemorySize() {
|
||||
MockServerHttpRequest request = createRequest("simple.multipart", "simple-boundary");
|
||||
|
||||
PartEventHttpMessageReader reader = new PartEventHttpMessageReader();
|
||||
reader.setMaxPartSize(10);
|
||||
reader.setMaxInMemorySize(-1);
|
||||
|
||||
Flux<PartEvent> result = reader.read(forClass(PartEvent.class), request, emptyMap());
|
||||
|
||||
StepVerifier.create(result)
|
||||
.expectError(DataBufferLimitException.class)
|
||||
.verify();
|
||||
}
|
||||
|
||||
@Test
|
||||
void formPartTooLarge() {
|
||||
MockServerHttpRequest request = createRequest(
|
||||
|
||||
Reference in New Issue
Block a user