Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 21 Jul 2010 10:08:25 +0000 (UTC)
From:      Kai Wang <kaiw@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r210335 - head/lib/libelf
Message-ID:  <201007211008.o6LA8PgG084179@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kaiw
Date: Wed Jul 21 10:08:25 2010
New Revision: 210335
URL: http://svn.freebsd.org/changeset/base/210335

Log:
  - Return zero for file sizes of ELF types that have a variable size.
  - Neaten a few comments.
  
  Obtained from:	elftoolchain
  MFC after:		1 month

Modified:
  head/lib/libelf/libelf_fsize.m4

Modified: head/lib/libelf/libelf_fsize.m4
==============================================================================
--- head/lib/libelf/libelf_fsize.m4	Wed Jul 21 10:05:07 2010	(r210334)
+++ head/lib/libelf/libelf_fsize.m4	Wed Jul 21 10:08:25 2010	(r210335)
@@ -43,16 +43,18 @@ include(SRCDIR`/elf_types.m4')
  * representations.
  */
 
-/* `Basic' types */
+/* `Basic' types. */
 define(`BYTE_SIZE',	1)
-define(`GNUHASH_SIZE',	1) /* Elf_GNU_Hash_Header structures vary in length. */
 define(`IDENT_SIZE',	`EI_NIDENT')
-define(`NOTE_SIZE',	1) /* Elf_Note structures have variable length. */
 
-/* Currently unimplemented types */
+/* Types that have variable length. */
+define(`GNUHASH_SIZE',	0) /* Elf_GNU_Hash_Header structures vary in length. */
+define(`NOTE_SIZE',	0) /* Elf_Note structures have variable length. */
+
+/* Currently unimplemented types. */
 define(`MOVEP_SIZE',	0)
 
-/* Overrides for 32 bit types that do not exist */
+/* Overrides for 32 bit types that do not exist. */
 define(`XWORD_SIZE32',	0)
 define(`SXWORD_SIZE32',	0)
 
@@ -143,7 +145,8 @@ _libelf_fsize(Elf_Type t, int ec, unsign
 	sz = 0;
 	if (v != EV_CURRENT)
 		LIBELF_SET_ERROR(VERSION, 0);
-	else if ((int) t < ELF_T_FIRST || t > ELF_T_LAST)
+	else if ((int) t < ELF_T_FIRST || t > ELF_T_LAST ||
+	    t == ELF_T_NOTE || t == ELF_T_GNUHASH)
 		LIBELF_SET_ERROR(ARGUMENT, 0);
 	else {
 		sz = ec == ELFCLASS64 ? fsize[t].fsz64 : fsize[t].fsz32;



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