X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=binutils%2Freadelf.c;h=c8ca66e52cf203d9ad1005683c5a4092e810c069;hb=b966f55ffa570a05081b2030577b2158e8116c5a;hp=a11297845e88a46e3bed0888b4db0fbd629caccf;hpb=645ba68105ee79511a79386811dd932be8becafa;p=thirdparty%2Fbinutils-gdb.git diff --git a/binutils/readelf.c b/binutils/readelf.c index a11297845e8..c8ca66e52cf 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -18402,15 +18402,17 @@ process_netbsd_elf_note (Elf_Internal_Note * pnote) switch (pnote->type) { case NT_NETBSD_IDENT: + if (pnote->descsz < 1) + break; version = byte_get ((unsigned char *) pnote->descdata, sizeof (version)); if ((version / 10000) % 100) - printf (" NetBSD\t\t0x%08lx\tIDENT %u (%u.%u%s%c)\n", pnote->descsz, + printf (" NetBSD\t\t0x%08lx\tIDENT %u (%u.%u%s%c)\n", pnote->descsz, version, version / 100000000, (version / 1000000) % 100, (version / 10000) % 100 > 26 ? "Z" : "", 'A' + (version / 10000) % 26); else printf (" NetBSD\t\t0x%08lx\tIDENT %u (%u.%u.%u)\n", pnote->descsz, - version, version / 100000000, (version / 1000000) % 100, + version, version / 100000000, (version / 1000000) % 100, (version / 100) % 100); return TRUE; @@ -18421,6 +18423,8 @@ process_netbsd_elf_note (Elf_Internal_Note * pnote) #ifdef NT_NETBSD_PAX case NT_NETBSD_PAX: + if (pnote->descsz < 1) + break; version = byte_get ((unsigned char *) pnote->descdata, sizeof (version)); printf (" NetBSD\t\t0x%08lx\tPaX <%s%s%s%s%s%s>\n", pnote->descsz, ((version & NT_NETBSD_PAX_MPROTECT) ? "+mprotect" : ""), @@ -18431,12 +18435,11 @@ process_netbsd_elf_note (Elf_Internal_Note * pnote) ((version & NT_NETBSD_PAX_NOASLR) ? "-ASLR" : "")); return TRUE; #endif - - default: - printf (" NetBSD\t0x%08lx\tUnknown note type: (0x%08lx)\n", pnote->descsz, - pnote->type); - return FALSE; } + + printf (" NetBSD\t0x%08lx\tUnknown note type: (0x%08lx)\n", + pnote->descsz, pnote->type); + return FALSE; } static const char *