RFR: 8343984: Fix Unsafe address overflow
Per Minborg
pminborg at openjdk.org
Tue Nov 12 08:18:31 UTC 2024
On Tue, 12 Nov 2024 07:30:41 GMT, Shaojin Wen <swen at openjdk.org> wrote:
> In the JDK code, there are some places that may cause Unsafe offset overflow. The probability of occurrence is low, but if it occurs, it will cause JVM crash.
src/java.base/share/classes/sun/nio/cs/StringUTF16.java line 35:
> 33: public static char getChar(byte[] val, int index) {
> 34: return unsafe.getChar(val,
> 35: (long) ARRAY_BYTE_BASE_OFFSET + ARRAY_BYTE_INDEX_SCALE * index * 2L);
This expression already contains `2L` which is a `long`. So, isn't the result of the multiplications of type `long`, and consequently, isn't the entire expression calculated with `long` precision as it is?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/22027#discussion_r1837653228
More information about the core-libs-dev
mailing list