From 2aab56bf71a5295d0122a94eb7304852ae76e41e Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Mon, 27 May 2024 16:05:04 +0200 Subject: [PATCH] LibJS: Null-check current executable in VM::dump_backtrace() If there is no current executable (because we're in a native function call), we shouldn't try to dereference it. --- Userland/Libraries/LibJS/Runtime/VM.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Userland/Libraries/LibJS/Runtime/VM.cpp b/Userland/Libraries/LibJS/Runtime/VM.cpp index f36f56ad889..8d66a0f47c5 100644 --- a/Userland/Libraries/LibJS/Runtime/VM.cpp +++ b/Userland/Libraries/LibJS/Runtime/VM.cpp @@ -423,7 +423,7 @@ void VM::dump_backtrace() const { for (ssize_t i = m_execution_context_stack.size() - 1; i >= 0; --i) { auto& frame = m_execution_context_stack[i]; - if (frame->program_counter.has_value()) { + if (frame->executable && frame->program_counter.has_value()) { auto source_range = frame->executable->source_range_at(frame->program_counter.value()).realize(); dbgln("-> {} @ {}:{},{}", frame->function_name ? frame->function_name->utf8_string() : ""_string, source_range.filename(), source_range.start.line, source_range.start.column); } else {