From c87e1084b6cca5ea44951e1fbddd3eeb4b213b2a Mon Sep 17 00:00:00 2001 From: Ollrogge Date: Thu, 14 Mar 2024 19:04:29 +0100 Subject: [PATCH] LibELF: Prevent negative index when determining dynamic symbol count --- Userland/Libraries/LibELF/DynamicObject.cpp | 5 +++++ 1 file changed, 5 insertions(+) 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) {