RFR: 8282306: os::is_first_C_frame(frame*) crashes on invalid link access [v3]
David Holmes
dholmes at openjdk.java.net
Thu Feb 24 02:45:07 UTC 2022
On Wed, 23 Feb 2022 22:51:44 GMT, Johannes Bechberger <duke at openjdk.java.net> wrote:
>> This PR introduces a new method `can_access_link` into the frame class to check the accessibility of the link information. It furthermore adds a new `os::is_first_C_frame(frame*, Thread*)` that uses the `can_access_link` method
>> and the passed thread object to check the validity of frame pointer, stack pointer, sender frame pointer and sender stack pointer. This should reduce the possibilities for crashes.
>
> Johannes Bechberger has updated the pull request incrementally with one additional commit since the last revision:
>
> Use safefetch
src/hotspot/share/runtime/os.cpp line 1192:
> 1190:
> 1191: uintptr_t usp = (uintptr_t)fr->sp();
> 1192: if ((usp & sp_align_mask) != 0 || SafeFetchN(fr->sp(), 0) == 0) return true;
This doesn't quite make sense to me. If the SafeFetchN were to fail then the load in the previous line would already have crashed wouldn't it?
-------------
PR: https://git.openjdk.java.net/jdk/pull/7591
More information about the hotspot-dev
mailing list