Loader: Don't insert symbols into the symbol table that begin wiht '$'.
authorAli Saidi <Ali.Saidi@arm.com>
Mon, 23 Aug 2010 16:18:40 +0000 (11:18 -0500)
committerAli Saidi <Ali.Saidi@arm.com>
Mon, 23 Aug 2010 16:18:40 +0000 (11:18 -0500)
src/base/loader/elf_object.cc

index 9d9109ab46b504fce703e3a635482fc55ac6ec77..2db206a3cdab6538a3a6edc39456a1ac7ff1dc59 100644 (file)
@@ -375,8 +375,12 @@ ElfObject::loadSomeSymbols(SymbolTable *symtab, int binding, Addr mask)
             for (ii = 0; ii < count; ++ii) {
                 gelf_getsym(data, ii, &sym);
                 if (GELF_ST_BIND(sym.st_info) == binding) {
-                   symtab->insert(sym.st_value & mask,
-                                  elf_strptr(elf, shdr.sh_link, sym.st_name));
+                    char *sym_name = elf_strptr(elf, shdr.sh_link, sym.st_name);
+                    if (sym_name && sym_name[0] != '$') {
+                        DPRINTF(Loader, "Symbol: %-40s value %#x\n",
+                                sym_name, sym.st_value);
+                        symtab->insert(sym.st_value & mask, sym_name);
+                    }
                 }
             }
         }