From 97d368d62b44c605320e2eea60d554bd6cb58b76 Mon Sep 17 00:00:00 2001 From: Ed Maste Date: Thu, 31 Jan 2019 16:49:06 +0000 Subject: [PATCH] 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 --- usr.bin/elfdump/elfdump.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/usr.bin/elfdump/elfdump.c b/usr.bin/elfdump/elfdump.c index 235376e2910f..2bdf98830088 100644 --- a/usr.bin/elfdump/elfdump.c +++ b/usr.bin/elfdump/elfdump.c @@ -317,9 +317,13 @@ static const char *p_flags[] = { "PF_X|PF_W|PF_R" }; +#define NT_ELEM(x) [x] = #x, 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 */ @@ -1079,7 +1083,7 @@ elf_print_note(Elf32_Ehdr *e, void *sh) namesz = elf_get_word(e, n, N_NAMESZ); descsz = elf_get_word(e, n, N_DESCSZ); 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]; else nt_type = "Unknown type";