JDK-8331098 : [Aarch64] Fix crash in Arrays.equals() intrinsic with -CCP
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version:
    23,24,repo-lilliput-17,repo-lilliput-21,repo-lilliput 23,24,repo-lilliput-17,repo-lilliput-21,repo-lilliput
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • CPU: aarch64
  • Submitted: 2024-04-25
  • Updated: 2024-05-18
  • Resolved: 2024-05-10
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 23
23 b23Fixed
Related Reports
Relates :  
Description
The implementations of Arrays.equals() in macroAssembler_aarch64.cpp, MacroAssembler::arrays_equals() assumes that the start of arrays is 8-byte-aligned. Since JDK-8139457 this is no longer the case, at least when running with -CompressedClassPointers (or Lilliput). The effect is that the loops may run over the array end, and if the array is at heap boundary, and that memory is unmapped, then it may crash.
Comments
[~rkennke] - Why did you add '24' to the "Affects Versions" field?
18-05-2024

Changeset: 1dac34fa Author: Roman Kennke <rkennke@openjdk.org> Date: 2024-05-10 21:13:43 +0000 URL: https://git.openjdk.org/jdk/commit/1dac34fa757f1d603f0bc9b9c1994c114c276add
10-05-2024

A pull request was submitted for review. URL: https://git.openjdk.org/jdk/pull/18948 Date: 2024-04-25 10:38:55 +0000
25-04-2024