Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 16 Oct 2011 14:11:05 +0000 (UTC)
From:      Marcel Moolenaar <marcel@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r226434 - head/usr.bin/elfdump
Message-ID:  <201110161411.p9GEB5TW065665@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: marcel
Date: Sun Oct 16 14:11:05 2011
New Revision: 226434
URL: http://svn.freebsd.org/changeset/base/226434

Log:
  o  Use C99 designated initializer to properly handle ELFOSABI_STANDALONE.
  o  In elf_get_byte(), cast through uint8_t and not char to avoid sign
     extension.

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

Modified: head/usr.bin/elfdump/elfdump.c
==============================================================================
--- head/usr.bin/elfdump/elfdump.c	Sun Oct 16 13:54:46 2011	(r226433)
+++ head/usr.bin/elfdump/elfdump.c	Sun Oct 16 14:11:05 2011	(r226434)
@@ -282,11 +282,12 @@ const char *ei_data[] = {
 	"ELFDATANONE", "ELFDATA2LSB", "ELFDATA2MSB"
 };
 
-const char *ei_abis[] = {
+const char *ei_abis[256] = {
 	"ELFOSABI_SYSV", "ELFOSABI_HPUX", "ELFOSABI_NETBSD", "ELFOSABI_LINUX",
-	"ELFOSABI_HURD", "ELFOSABI_86OPEN", "ELFOSABI_SOLARIS",
-	"ELFOSABI_MONTEREY", "ELFOSABI_IRIX", "ELFOSABI_FREEBSD",
-	"ELFOSABI_TRU64", "ELFOSABI_MODESTO", "ELFOSABI_OPENBSD"
+	"ELFOSABI_HURD", "ELFOSABI_86OPEN", "ELFOSABI_SOLARIS", "ELFOSABI_AIX",
+	"ELFOSABI_IRIX", "ELFOSABI_FREEBSD", "ELFOSABI_TRU64",
+	"ELFOSABI_MODESTO", "ELFOSABI_OPENBSD",
+	[255] = "ELFOSABI_STANDALONE"
 };
 
 const char *p_types[] = {
@@ -931,10 +932,10 @@ elf_get_byte(Elf32_Ehdr *e, void *base, 
 	val = 0;
 	switch (e->e_ident[EI_CLASS]) {
 	case ELFCLASS32:
-		val = ((char *)base)[elf32_offsets[member]];
+		val = ((uint8_t *)base)[elf32_offsets[member]];
 		break;
 	case ELFCLASS64:
-		val = ((char *)base)[elf64_offsets[member]];
+		val = ((uint8_t *)base)[elf64_offsets[member]];
 		break;
 	case ELFCLASSNONE:
 		errx(1, "invalid class");



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201110161411.p9GEB5TW065665>