diff --git a/usr.bin/ldd/ldd.c b/usr.bin/ldd/ldd.c index 00c8797..a766c71 100644 --- a/usr.bin/ldd/ldd.c +++ b/usr.bin/ldd/ldd.c @@ -330,14 +330,12 @@ is_executable(const char *fname, int fd, int *is_shlib, int *type) warnx("%s: not a dynamic ELF executable", fname); return (0); } - if (hdr.elf32.e_type == ET_DYN) { - if (hdr.elf32.e_ident[EI_OSABI] == ELFOSABI_FREEBSD) { - *is_shlib = 1; - return (1); - } - warnx("%s: not a FreeBSD ELF shared object", fname); + if (hdr.elf32.e_ident[EI_OSABI] != ELFOSABI_FREEBSD) { + warnx("%s: not a FreeBSD ELF object", fname); return (0); } + if (hdr.elf32.e_type == ET_DYN) + *is_shlib = 1; return (1); } @@ -372,14 +370,12 @@ is_executable(const char *fname, int fd, int *is_shlib, int *type) warnx("%s: not a dynamic ELF executable", fname); return (0); } - if (hdr.elf.e_type == ET_DYN) { - if (hdr.elf.e_ident[EI_OSABI] == ELFOSABI_FREEBSD) { - *is_shlib = 1; - return (1); - } - warnx("%s: not a FreeBSD ELF shared object", fname); + if (hdr.elf.e_ident[EI_OSABI] != ELFOSABI_FREEBSD) { + warnx("%s: not a FreeBSD ELF object", fname); return (0); } + if (hdr.elf.e_type == ET_DYN) + *is_shlib = 1; return (1); }