8342823: Ubsan: ciEnv.cpp:1614:65: runtime error: member call on null pointer of type 'struct CompileTask'

Reviewed-by: kvn, mdoerr
This commit is contained in:
Matthias Baesken 2024-10-29 08:18:44 +00:00
parent e389f82b1b
commit beff8bfe2a
2 changed files with 4 additions and 4 deletions

View File

@ -1597,6 +1597,8 @@ void ciEnv::dump_replay_data_helper(outputStream* out) {
NoSafepointVerifier no_safepoint;
ResourceMark rm;
assert(this->task() != nullptr, "task must not be null");
dump_replay_data_version(out);
#if INCLUDE_JVMTI
out->print_cr("JvmtiExport can_access_local_variables %d", _jvmti_can_access_local_variables);
@ -1617,9 +1619,7 @@ void ciEnv::dump_replay_data_helper(outputStream* out) {
objects->at(i)->dump_replay_data(out);
}
if (this->task() != nullptr) {
dump_compile_data(out);
}
dump_compile_data(out);
out->flush();
}

View File

@ -1866,7 +1866,7 @@ void VMError::report_and_die(int id, const char* message, const char* detail_fmt
if (DumpReplayDataOnError && _thread && _thread->is_Compiler_thread() && !skip_replay) {
skip_replay = true;
ciEnv* env = ciEnv::current();
if (env != nullptr) {
if (env != nullptr && env->task() != nullptr) {
const bool overwrite = false; // We do not overwrite an existing replay file.
int fd = prepare_log_file(ReplayDataFile, "replay_pid%p.log", overwrite, buffer, sizeof(buffer));
if (fd != -1) {