|
@@ -266,9 +266,9 @@ do_file(char const *const fname)
|
|
|
break;
|
|
|
} /* end switch */
|
|
|
if (memcmp(ELFMAG, ehdr->e_ident, SELFMAG) != 0
|
|
|
- || r2(&ehdr->e_type) != ET_EXEC
|
|
|
+ || (r2(&ehdr->e_type) != ET_EXEC && r2(&ehdr->e_type) != ET_DYN)
|
|
|
|| ehdr->e_ident[EI_VERSION] != EV_CURRENT) {
|
|
|
- fprintf(stderr, "unrecognized ET_EXEC file %s\n", fname);
|
|
|
+ fprintf(stderr, "unrecognized ET_EXEC/ET_DYN file %s\n", fname);
|
|
|
fail_file();
|
|
|
}
|
|
|
|
|
@@ -304,7 +304,7 @@ do_file(char const *const fname)
|
|
|
if (r2(&ehdr->e_ehsize) != sizeof(Elf32_Ehdr)
|
|
|
|| r2(&ehdr->e_shentsize) != sizeof(Elf32_Shdr)) {
|
|
|
fprintf(stderr,
|
|
|
- "unrecognized ET_EXEC file: %s\n", fname);
|
|
|
+ "unrecognized ET_EXEC/ET_DYN file: %s\n", fname);
|
|
|
fail_file();
|
|
|
}
|
|
|
do32(ehdr, fname, custom_sort);
|
|
@@ -314,7 +314,7 @@ do_file(char const *const fname)
|
|
|
if (r2(&ghdr->e_ehsize) != sizeof(Elf64_Ehdr)
|
|
|
|| r2(&ghdr->e_shentsize) != sizeof(Elf64_Shdr)) {
|
|
|
fprintf(stderr,
|
|
|
- "unrecognized ET_EXEC file: %s\n", fname);
|
|
|
+ "unrecognized ET_EXEC/ET_DYN file: %s\n", fname);
|
|
|
fail_file();
|
|
|
}
|
|
|
do64(ghdr, fname, custom_sort);
|