From 46063371800ab69458ead6c1e06fc3822db242a7 Mon Sep 17 00:00:00 2001 From: Gang Cheng Date: Sat, 8 Feb 2025 12:01:25 +0800 Subject: [PATCH] Prevent hung uploads in MultipartParser This commit adds an onRequest() hook to request more data from the source in order to avoid hung uploads in MultipartParser. Closes gh-34388 Signed-off-by: Gang Cheng --- .../springframework/http/codec/multipart/MultipartParser.java | 1 + 1 file changed, 1 insertion(+) diff --git a/spring-web/src/main/java/org/springframework/http/codec/multipart/MultipartParser.java b/spring-web/src/main/java/org/springframework/http/codec/multipart/MultipartParser.java index 789a3726e47..04a658e01ad 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/multipart/MultipartParser.java +++ b/spring-web/src/main/java/org/springframework/http/codec/multipart/MultipartParser.java @@ -100,6 +100,7 @@ final class MultipartParser extends BaseSubscriber { return Flux.create(sink -> { MultipartParser parser = new MultipartParser(sink, boundary, maxHeadersSize, headersCharset); sink.onCancel(parser::onSinkCancel); + sink.onRequest(l -> parser.requestBuffer()); buffers.subscribe(parser); }); }