[jdk21u-dev] RFR: 8320570: NegativeArraySizeException decoding >1G UTF8 bytes with non-ascii characters
Amos Shi
ashi at openjdk.org
Fri Mar 8 21:44:16 UTC 2024
Backport of [JDK-8320570](https://bugs.openjdk.org/browse/JDK-8320570)
- `NegativeSize.java` - Clean backport
- `String.java` - only 1 line change is unclean, the rest are clean. Details as bellow.
- This PR contains 2 commits
- The commit 1: is a clean backport part
- The commit 2: is a manual fix of the following 1 line:
- In the `jdk master` branch, the variable name is `utf16`
- Well in `jdk21u-dev`, the varialbe name is `buf`
- So we manully applied the following line
@@ -592,7 +592,7 @@
this.coder = LATIN1;
return;
}
- byte[] utf16 = new byte[length << 1];
+ byte[] utf16 = StringUTF16.newBytesFor(length);
StringLatin1.inflate(latin1, 0, utf16, 0, dp);
dp = decodeUTF8_UTF16(latin1, sp, length, utf16, dp, true);
if (dp != length) {
- So this PR can be considered as `semantics clean`
Testing
- Local: Passed on MacOS M1 laptop
- `test/jdk/java/lang/String/CompactString/NegativeSize.java` - Test results: passed: 1
- Pipeline:
- Testing Machine:
-------------
Commit messages:
- Manual merge the line to jdk21u-dev
- Backport 82796bdebbf56b98ec97a6d572ed68c2842f60c6
Changes: https://git.openjdk.org/jdk21u-dev/pull/344/files
Webrev: https://webrevs.openjdk.org/?repo=jdk21u-dev&pr=344&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8320570
Stats: 82 lines in 2 files changed: 75 ins; 0 del; 7 mod
Patch: https://git.openjdk.org/jdk21u-dev/pull/344.diff
Fetch: git fetch https://git.openjdk.org/jdk21u-dev.git pull/344/head:pull/344
PR: https://git.openjdk.org/jdk21u-dev/pull/344
More information about the jdk-updates-dev
mailing list