From 1b2140c9bf46388e4f59ecf3d62d99cd78fed12c Mon Sep 17 00:00:00 2001 From: Andreas Gampe Date: Mon, 8 Sep 2014 23:39:45 -0700 Subject: [PATCH] ART: Better error reporting on broken oat file Do not blow up when in GetHashBucket if GetHashBucketNum is zero. Instead back-step to ElfFileOpen, which prints which symbol was missing from which file. Bug: 17422404 Change-Id: I3b890dd1c31c08b1ccc0f7f668afcceee95f8d00 --- runtime/elf_file.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/runtime/elf_file.cc b/runtime/elf_file.cc index 6179b5e8d..f6e89213a 100644 --- a/runtime/elf_file.cc +++ b/runtime/elf_file.cc @@ -584,6 +584,10 @@ const byte* ElfFile::FindDynamicSymbolAddress(const std::string& symbol_name) co } const Elf32_Sym* ElfFile::FindDynamicSymbol(const std::string& symbol_name) const { + if (GetHashBucketNum() == 0) { + // No dynamic symbols at all. + return nullptr; + } Elf32_Word hash = elfhash(symbol_name.c_str()); Elf32_Word bucket_index = hash % GetHashBucketNum(); Elf32_Word symbol_and_chain_index = GetHashBucket(bucket_index); -- 2.11.0