Author: emaste
Date: Thu Jan 31 16:49:06 2019
New Revision: 343613
URL: https://svnweb.freebsd.org/changeset/base/343613

Log:
  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

Modified:
  head/usr.bin/elfdump/elfdump.c

Modified: head/usr.bin/elfdump/elfdump.c
==============================================================================
--- head/usr.bin/elfdump/elfdump.c      Thu Jan 31 16:43:35 2019        
(r343612)
+++ head/usr.bin/elfdump/elfdump.c      Thu Jan 31 16:49:06 2019        
(r343613)
@@ -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";
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to