From 5513dcfa14dc94491f48ca7e6b2eebc3f33c8821 Mon Sep 17 00:00:00 2001 From: Aleksei Tirman Date: Thu, 28 Mar 2024 13:47:34 +0200 Subject: [PATCH] =?UTF-8?q?KTOR-6851=20Parsing=20Content-Length=20to=20Lon?= =?UTF-8?q?g=20instead=20of=20Int=20to=20prevent=20Nu=E2=80=A6=20(#4008)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * KTOR-6851 Parse Content-Length to Long instead of Int to prevent NumberFormatException for lengths more than Int.MAX_VALUE --- .../ktor/server/cio/CIOApplicationEngine.kt | 2 +- .../server/testing/suites/ContentTestSuite.kt | 21 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/ktor-server/ktor-server-cio/jvmAndNix/src/io/ktor/server/cio/CIOApplicationEngine.kt b/ktor-server/ktor-server-cio/jvmAndNix/src/io/ktor/server/cio/CIOApplicationEngine.kt index 0f13f676216..9a431db3e1d 100644 --- a/ktor-server/ktor-server-cio/jvmAndNix/src/io/ktor/server/cio/CIOApplicationEngine.kt +++ b/ktor-server/ktor-server-cio/jvmAndNix/src/io/ktor/server/cio/CIOApplicationEngine.kt @@ -145,7 +145,7 @@ public class CIOApplicationEngine( } private fun hasBody(request: CIOApplicationRequest): Boolean { - val contentLength = request.headers[HttpHeaders.ContentLength]?.toInt() + val contentLength = request.headers[HttpHeaders.ContentLength]?.toLong() val transferEncoding = request.headers[HttpHeaders.TransferEncoding] return transferEncoding != null || (contentLength != null && contentLength > 0) } diff --git a/ktor-server/ktor-server-test-suites/jvm/src/io/ktor/server/testing/suites/ContentTestSuite.kt b/ktor-server/ktor-server-test-suites/jvm/src/io/ktor/server/testing/suites/ContentTestSuite.kt index 8dfa5676bee..218dc9be229 100644 --- a/ktor-server/ktor-server-test-suites/jvm/src/io/ktor/server/testing/suites/ContentTestSuite.kt +++ b/ktor-server/ktor-server-test-suites/jvm/src/io/ktor/server/testing/suites/ContentTestSuite.kt @@ -734,6 +734,27 @@ abstract class ContentTestSuite