From: Christos Zoulas Date: Thu, 13 Dec 2012 13:48:31 +0000 (+0000) Subject: elf capabilities fix (Jan Kaluza) X-Git-Tag: FILE5_12~12 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0944f9c65e8e8e95e1a43544c2d1bf0d03aff6aa;p=file elf capabilities fix (Jan Kaluza) --- diff --git a/ChangeLog b/ChangeLog index c7ac6158..157d07c1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2012-12-19 8:47 Christos Zoulas + + * Only print elf capabilities for archs we know (Jan Kaluza) + 2012-10-30 19:14 Christos Zoulas * Add "name" and "use" file types in order to look diff --git a/src/readelf.c b/src/readelf.c index 158f789b..8212330d 100644 --- a/src/readelf.c +++ b/src/readelf.c @@ -27,7 +27,7 @@ #include "file.h" #ifndef lint -FILE_RCSID("@(#)$File: readelf.c,v 1.92 2012/06/20 22:33:43 christos Exp $") +FILE_RCSID("@(#)$File: readelf.c,v 1.93 2012/10/31 17:03:41 christos Exp $") #endif #ifdef BUILTIN_ELF @@ -928,6 +928,17 @@ doshn(struct magic_set *ms, int clazz, int swap, int fd, off_t off, int num, free(nbuf); break; case SHT_SUNW_cap: + switch (mach) { + case EM_SPARC: + case EM_SPARCV9: + case EM_IA_64: + case EM_386: + case EM_AMD64: + break; + default: + goto skip; + } + if (lseek(fd, (off_t)xsh_offset, SEEK_SET) == (off_t)-1) { file_badseek(ms); @@ -967,12 +978,13 @@ doshn(struct magic_set *ms, int clazz, int swap, int fd, off_t off, int num, break; } } - break; - + /*FALLTHROUGH*/ + skip: default: break; } } + if (file_printf(ms, ", %sstripped", stripped ? "" : "not ") == -1) return -1; if (cap_hw1) {