RFR: 8361842: Move input validation checks to Java for String-related intrinsics [v8]

Roger Riggs rriggs at openjdk.org
Thu Jul 17 14:35:53 UTC 2025


On Thu, 10 Jul 2025 12:20:45 GMT, Volkan Yazici <vyazici at openjdk.org> wrote:

>> Volkan Yazici has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Replace casting with `as_Region()` in `generate_string_range_check`
>
> src/java.base/share/classes/java/lang/StringCoding.java line 150:
> 
>> 148:      */
>> 149:     static int encodeISOArray(byte[] sa, int sp, byte[] da, int dp, int len) {
>> 150:         checkFromIndexSize(sp, len << 1, requireNonNull(sa, "sa").length, AIOOBE_FORMATTER);
> 
> `sa` contains 2-byte `char`s, and `sp` points to an index of this inflated array. Though, `len` denotes the codepoint count, hence the `len << 1` while checking `sp` and `len` bounds.

The reference of `sa.length` is likely wrong also, as it is the source length in bytes but for the index check should be checking the source length in chars.
It might be worth trying to find or create a test for the accidental incorrect interpretation of length in bytes vs chars..

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/25998#discussion_r2213528045


More information about the graal-dev mailing list