diff --git a/Userland/Libraries/LibELF/DynamicObject.cpp b/Userland/Libraries/LibELF/DynamicObject.cpp index efa7ef683e..849507fe6d 100644 --- a/Userland/Libraries/LibELF/DynamicObject.cpp +++ b/Userland/Libraries/LibELF/DynamicObject.cpp @@ -242,6 +242,11 @@ void DynamicObject::parse() } } + if (highest_chain_idx < num_omitted_symbols) { + m_symbol_count = 0; + return; + } + size_t amount_symbols = highest_chain_idx; u32 const* last_chain = &chains[highest_chain_idx - num_omitted_symbols]; while ((*(last_chain++) & 1) == 0) {