From 38619a9f24bbc5a64355e14842f1f54cc699d2a7 Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Mon, 19 Apr 2021 19:38:24 +0200 Subject: [PATCH] LibELF: Ignore DT_SYMBOLIC entries The shared library libicudata.so has a DT_SYMBOLIC entry: Dynamic Section: NEEDED libgcc_s.so SONAME libicudata.so.69 SYMBOLIC 0x00000000 HASH 0x00000094 STRTAB 0x000000c8 SYMTAB 0x000000a8 STRSZ 0x0000002a SYMENT 0x00000010 According to the ELF spec DT_SYMBOLIC has no special meaning for the dynamic loader. --- Userland/Libraries/LibELF/DynamicObject.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Userland/Libraries/LibELF/DynamicObject.cpp b/Userland/Libraries/LibELF/DynamicObject.cpp index 4dc50ab0e4..4eb45c71d5 100644 --- a/Userland/Libraries/LibELF/DynamicObject.cpp +++ b/Userland/Libraries/LibELF/DynamicObject.cpp @@ -183,6 +183,8 @@ void DynamicObject::parse() case DT_NEEDED: // We handle these in for_each_needed_library break; + case DT_SYMBOLIC: + break; default: dbgln("DynamicObject: DYNAMIC tag handling not implemented for DT_{}", name_for_dtag(entry.tag())); VERIFY_NOT_REACHED(); // FIXME: Maybe just break out here and return false?