This avoids calling exit with a partially constructed object.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285738
91177308-0d34-0410-b5e6-
96231b3b80d8
Header = reinterpret_cast<const Elf_Ehdr *>(base());
if (Header->e_shoff == 0) {
- if (Header->e_shnum != 0)
- report_fatal_error(
- "e_shnum should be zero if a file has no section header table");
+ if (Header->e_shnum != 0) {
+ // e_shnum should be zero if a file has no section header table
+ EC = object_error::parse_failed;
+ }
return;
}
INVALID-XINDEX-SIZE: Invalid data was encountered while parsing the file.
RUN: not llvm-readobj -t %p/Inputs/invalid-e_shnum.elf 2>&1 | FileCheck --check-prefix=INVALID-SH-NUM %s
-INVALID-SH-NUM: e_shnum should be zero if a file has no section header table
+INVALID-SH-NUM: Invalid data was encountered while parsing the file.
RUN: not llvm-readobj -t %p/Inputs/invalid-ext-symtab-index.elf-x86-64 2>&1 | \
RUN: FileCheck --check-prefix=INVALID-EXT-SYMTAB-INDEX %s