elfdump: use designated array initialization for note types

This ensures the note type name is in the correct slot.

PR:		228290
Submitted by:	kib
MFC with:	343610
Sponsored by:	The FreeBSD Foundation
This commit is contained in:
Ed Maste 2019-01-31 16:49:06 +00:00
parent 8ae9aa2772
commit 97d368d62b

View File

@ -317,9 +317,13 @@ static const char *p_flags[] = {
"PF_X|PF_W|PF_R" "PF_X|PF_W|PF_R"
}; };
#define NT_ELEM(x) [x] = #x,
static const char *nt_types[] = { static const char *nt_types[] = {
"", "NT_FREEBSD_ABI_TAG", "NT_FREEBSD_NOINIT_TAG", "",
"NT_FREEBSD_ARCH_TAG", "NT_FREEBSD_FEATURE_CTL" NT_ELEM(NT_FREEBSD_ABI_TAG)
NT_ELEM(NT_FREEBSD_NOINIT_TAG)
NT_ELEM(NT_FREEBSD_ARCH_TAG)
NT_ELEM(NT_FREEBSD_FEATURE_CTL)
}; };
/* http://www.sco.com/developers/gabi/latest/ch4.sheader.html#sh_type */ /* http://www.sco.com/developers/gabi/latest/ch4.sheader.html#sh_type */
@ -1079,7 +1083,7 @@ elf_print_note(Elf32_Ehdr *e, void *sh)
namesz = elf_get_word(e, n, N_NAMESZ); namesz = elf_get_word(e, n, N_NAMESZ);
descsz = elf_get_word(e, n, N_DESCSZ); descsz = elf_get_word(e, n, N_DESCSZ);
type = elf_get_word(e, n, N_TYPE); type = elf_get_word(e, n, N_TYPE);
if (type < nitems(nt_types)) if (type < nitems(nt_types) && nt_types[type] != NULL)
nt_type = nt_types[type]; nt_type = nt_types[type];
else else
nt_type = "Unknown type"; nt_type = "Unknown type";