From 1f21da75eb5d5eb7460b2953517514a0aa26b5de Mon Sep 17 00:00:00 2001 From: Raffaello Giulietti Date: Wed, 9 Apr 2025 15:16:02 +0000 Subject: [PATCH] 8351462: Improve robustness of String concatenation Reviewed-by: liach, pminborg, rriggs --- .../share/classes/java/lang/StringConcatHelper.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/java.base/share/classes/java/lang/StringConcatHelper.java b/src/java.base/share/classes/java/lang/StringConcatHelper.java index 13ada0637ba..3b057ecb028 100644 --- a/src/java.base/share/classes/java/lang/StringConcatHelper.java +++ b/src/java.base/share/classes/java/lang/StringConcatHelper.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2025, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2024, Alibaba Group Holding Limited. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -52,6 +52,9 @@ final class StringConcatHelper { byte coder = String.LATIN1; for (String c : constants) { length += c.length(); + if (length < 0) { + throw new OutOfMemoryError("Total length of constants is out of range"); + } coder |= c.coder(); } this.constants = constants;