8333622: ubsan: relocInfo_x86.cpp:101:56: runtime error: pointer index expression with base (-1) overflowed

Reviewed-by: thartmann, chagedorn
This commit is contained in:
Vladimir Kozlov 2024-06-06 13:41:51 +00:00
parent 8de5d2014a
commit 33fd6ae986

View File

@ -98,7 +98,11 @@ address Relocation::pd_call_destination(address orig_addr) {
if (ni->is_call()) {
return nativeCall_at(addr())->destination() + adj;
} else if (ni->is_jump()) {
return nativeJump_at(addr())->jump_destination() + adj;
address dest = nativeJump_at(addr())->jump_destination();
if (dest == (address) -1) {
return addr(); // jump to self
}
return dest + adj;
} else if (ni->is_cond_jump()) {
return nativeGeneralJump_at(addr())->jump_destination() + adj;
} else if (ni->is_mov_literal64()) {