From 65b080435c43791a4d43bcd95d8cb760b514b85f Mon Sep 17 00:00:00 2001 From: roland Date: Sep 06 2005 03:23:06 +0000 Subject: New upstream version 0.115 --- diff --git a/elfutils-portability.patch b/elfutils-portability.patch index deb1336..f21629c 100644 --- a/elfutils-portability.patch +++ b/elfutils-portability.patch @@ -1,6 +1,6 @@ --- elfutils/ChangeLog +++ elfutils/ChangeLog -@@ -15,6 +15,17 @@ +@@ -23,6 +23,17 @@ * Makefile.am (all_SUBDIRS): Add libdwfl. * configure.ac: Write libdwfl/Makefile. @@ -20,7 +20,7 @@ * configure.ac [AH_BOTTOM] (INTDECL, _INTDECL): New macros. --- elfutils/config/Makefile.in +++ elfutils/config/Makefile.in -@@ -111,6 +111,7 @@ SHELL = @SHELL@ +@@ -113,6 +113,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ @@ -30,16 +30,16 @@ ac_ct_CC = @ac_ct_CC@ --- elfutils/configure +++ elfutils/configure -@@ -276,7 +276,7 @@ PACKAGE_STRING='Red Hat elfutils 0.114' +@@ -276,7 +276,7 @@ PACKAGE_STRING='Red Hat elfutils 0.115' PACKAGE_BUGREPORT='http://bugzilla.redhat.com/bugzilla/' ac_unique_file="libelf/libelf.h" --ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MODVERSION build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE RANLIB ac_ct_RANLIB YACC LEX LEXLIB LEX_OUTPUT_ROOT LOCALEDIR DATADIRNAME NATIVE_LD_TRUE NATIVE_LD_FALSE base_cpu MUDFLAP_TRUE MUDFLAP_FALSE GPROF_TRUE GPROF_FALSE BUILD_STATIC_TRUE BUILD_STATIC_FALSE LIBEBL_SUBDIR USE_NLS MKINSTALLDIRS MSGFMT GMSGFMT XGETTEXT MSGMERGE LIBOBJS LTLIBOBJS' -+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MODVERSION build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE RANLIB ac_ct_RANLIB YACC LEX LEXLIB LEX_OUTPUT_ROOT WEXTRA LOCALEDIR DATADIRNAME NATIVE_LD_TRUE NATIVE_LD_FALSE base_cpu MUDFLAP_TRUE MUDFLAP_FALSE GPROF_TRUE GPROF_FALSE BUILD_STATIC_TRUE BUILD_STATIC_FALSE LIBEBL_SUBDIR USE_NLS MKINSTALLDIRS MSGFMT GMSGFMT XGETTEXT MSGMERGE LIBOBJS LTLIBOBJS' +-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MODVERSION build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE RANLIB ac_ct_RANLIB YACC LEX LEXLIB LEX_OUTPUT_ROOT LOCALEDIR DATADIRNAME NATIVE_LD_TRUE NATIVE_LD_FALSE base_cpu MUDFLAP_TRUE MUDFLAP_FALSE GPROF_TRUE GPROF_FALSE GCOV_TRUE GCOV_FALSE BUILD_STATIC_TRUE BUILD_STATIC_FALSE LIBEBL_SUBDIR USE_NLS MKINSTALLDIRS MSGFMT GMSGFMT XGETTEXT MSGMERGE LIBOBJS LTLIBOBJS' ++ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MODVERSION build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE RANLIB ac_ct_RANLIB YACC LEX LEXLIB LEX_OUTPUT_ROOT WEXTRA LOCALEDIR DATADIRNAME NATIVE_LD_TRUE NATIVE_LD_FALSE base_cpu MUDFLAP_TRUE MUDFLAP_FALSE GPROF_TRUE GPROF_FALSE GCOV_TRUE GCOV_FALSE BUILD_STATIC_TRUE BUILD_STATIC_FALSE LIBEBL_SUBDIR USE_NLS MKINSTALLDIRS MSGFMT GMSGFMT XGETTEXT MSGMERGE LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. -@@ -3383,6 +3383,58 @@ echo "$as_me: error: gcc with C99 suppor +@@ -3384,6 +3384,58 @@ echo "$as_me: error: gcc with C99 suppor fi @@ -98,7 +98,7 @@ LOCALEDIR=$datadir cat >>confdefs.h <<_ACEOF -@@ -4893,6 +4945,7 @@ s,@YACC@,$YACC,;t t +@@ -4925,6 +4977,7 @@ s,@YACC@,$YACC,;t t s,@LEX@,$LEX,;t t s,@LEXLIB@,$LEXLIB,;t t s,@LEX_OUTPUT_ROOT@,$LEX_OUTPUT_ROOT,;t t @@ -126,7 +126,7 @@ AC_DEFINE_UNQUOTED(LOCALEDIR, "$LOCALEDIR") --- elfutils/lib/ChangeLog +++ elfutils/lib/ChangeLog -@@ -8,6 +8,11 @@ +@@ -12,6 +12,11 @@ * Makefile.am (libeu_a_SOURCES): Add it. * system.h: Declare crc32_file. @@ -157,7 +157,7 @@ noinst_LIBRARIES = libeu.a --- elfutils/lib/Makefile.in +++ elfutils/lib/Makefile.in -@@ -133,6 +133,7 @@ SHELL = @SHELL@ +@@ -135,6 +135,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ @@ -165,7 +165,7 @@ XGETTEXT = @XGETTEXT@ YACC = @YACC@ ac_ct_CC = @ac_ct_CC@ -@@ -175,9 +176,9 @@ sharedstatedir = @sharedstatedir@ +@@ -177,9 +178,9 @@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ @MUDFLAP_FALSE@AM_CFLAGS = -fpic -Wall -Wshadow -Werror -Wunused \ @@ -179,7 +179,7 @@ libeu_a_SOURCES = xstrdup.c xstrndup.c xmalloc.c next_prime.c \ --- elfutils/libasm/ChangeLog +++ elfutils/libasm/ChangeLog -@@ -14,6 +14,11 @@ +@@ -24,6 +24,11 @@ * asm_error.c: Add new error ASM_E_IOERROR. * libasmP.h: Add ASM_E_IOERROR definition. @@ -210,7 +210,7 @@ GCC_INCLUDE = -I$(shell $(CC) -print-file-name=include) --- elfutils/libasm/Makefile.in +++ elfutils/libasm/Makefile.in -@@ -165,6 +165,7 @@ SHELL = @SHELL@ +@@ -167,6 +167,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = 1 @@ -218,7 +218,7 @@ XGETTEXT = @XGETTEXT@ YACC = @YACC@ ac_ct_CC = @ac_ct_CC@ -@@ -207,9 +208,9 @@ sharedstatedir = @sharedstatedir@ +@@ -209,9 +210,9 @@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ @MUDFLAP_FALSE@AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Werror -Wunused \ @@ -255,7 +255,7 @@ noinst_LIBRARIES = libcpu_i386.a --- elfutils/libcpu/Makefile.in +++ elfutils/libcpu/Makefile.in -@@ -128,6 +128,7 @@ SHELL = @SHELL@ +@@ -130,6 +130,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ @@ -263,7 +263,7 @@ XGETTEXT = @XGETTEXT@ YACC = @YACC@ ac_ct_CC = @ac_ct_CC@ -@@ -169,7 +170,7 @@ sbindir = @sbindir@ +@@ -171,7 +172,7 @@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ @@ -274,7 +274,7 @@ libcpu_i386_a_SOURCES = i386_dis.c --- elfutils/libdw/ChangeLog +++ elfutils/libdw/ChangeLog -@@ -112,6 +112,11 @@ +@@ -140,6 +140,11 @@ 2005-05-31 Roland McGrath @@ -305,7 +305,7 @@ --- elfutils/libdw/Makefile.in +++ elfutils/libdw/Makefile.in -@@ -204,6 +204,7 @@ SHELL = @SHELL@ +@@ -207,6 +207,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = 1 @@ -313,7 +313,7 @@ XGETTEXT = @XGETTEXT@ YACC = @YACC@ ac_ct_CC = @ac_ct_CC@ -@@ -246,9 +247,9 @@ sharedstatedir = @sharedstatedir@ +@@ -249,9 +250,9 @@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ @MUDFLAP_FALSE@AM_CFLAGS = -Wall -Werror -Wshadow -Wunused -Wformat=2 \ @@ -323,11 +323,11 @@ -@MUDFLAP_TRUE@ -Wformat=2 -Wextra -std=gnu99 +@MUDFLAP_TRUE@ -Wformat=2 $(WEXTRA) -std=gnu99 INCLUDES = -I. -I$(srcdir) -I$(srcdir)/../libelf -I.. -I$(srcdir)/../lib - lib_LIBRARIES = libdw.a - @MUDFLAP_FALSE@noinst_LIBRARIES = libdw_pic.a + COMPILE.os = $(filter-out -fprofile-arcs, $(filter-out -ftest-coverage, \ + $(COMPILE))) --- elfutils/libdwfl/ChangeLog +++ elfutils/libdwfl/ChangeLog -@@ -180,6 +180,11 @@ +@@ -192,6 +192,11 @@ 2005-07-21 Roland McGrath @@ -358,7 +358,7 @@ VERSION = 1 --- elfutils/libdwfl/Makefile.in +++ elfutils/libdwfl/Makefile.in -@@ -161,6 +161,7 @@ SHELL = @SHELL@ +@@ -163,6 +163,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = 1 @@ -366,7 +366,7 @@ XGETTEXT = @XGETTEXT@ YACC = @YACC@ ac_ct_CC = @ac_ct_CC@ -@@ -203,9 +204,9 @@ sharedstatedir = @sharedstatedir@ +@@ -205,9 +206,9 @@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ @MUDFLAP_FALSE@AM_CFLAGS = -Wall -Werror -Wshadow -Wunused -Wformat=2 \ @@ -380,7 +380,7 @@ --- elfutils/libebl/ChangeLog +++ elfutils/libebl/ChangeLog -@@ -148,6 +148,11 @@ +@@ -152,6 +152,11 @@ * Makefile.am (libebl_*_so_SOURCES): Set to $(*_SRCS) so dependency tracking works right. @@ -411,7 +411,7 @@ INCLUDES = -I$(srcdir) -I$(top_srcdir)/libelf -I$(top_srcdir)/lib -I.. --- elfutils/libebl/Makefile.in +++ elfutils/libebl/Makefile.in -@@ -256,6 +256,7 @@ SHELL = @SHELL@ +@@ -258,6 +258,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = 1 @@ -419,7 +419,7 @@ XGETTEXT = @XGETTEXT@ YACC = @YACC@ ac_ct_CC = @ac_ct_CC@ -@@ -298,9 +299,9 @@ sharedstatedir = @sharedstatedir@ +@@ -300,9 +301,9 @@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ @MUDFLAP_FALSE@AM_CFLAGS = -fpic -Wall -Wshadow -Werror -Wunused \ @@ -433,7 +433,7 @@ modules = i386 sh x86_64 ia64 alpha arm sparc ppc ppc64 --- elfutils/libelf/ChangeLog +++ elfutils/libelf/ChangeLog -@@ -62,6 +62,11 @@ +@@ -86,6 +86,11 @@ If section content hasn't been read yet, do it before looking for the block size. If no section data present, infer size of section header. @@ -498,7 +498,7 @@ @MUDFLAP_FALSE@noinst_PROGRAMS = $(am__EXEEXT_1) @MUDFLAP_TRUE@am_libelf_pic_a_OBJECTS = subdir = libelf -@@ -208,6 +208,7 @@ SHELL = @SHELL@ +@@ -210,6 +210,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = 1 @@ -506,7 +506,7 @@ XGETTEXT = @XGETTEXT@ YACC = @YACC@ ac_ct_CC = @ac_ct_CC@ -@@ -250,10 +251,10 @@ sharedstatedir = @sharedstatedir@ +@@ -252,10 +253,10 @@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ @MUDFLAP_FALSE@AM_CFLAGS = $(am__append_1) -Wall -Wshadow -Werror \ @@ -521,7 +521,7 @@ GCC_INCLUDE = -I$(shell $(CC) -print-file-name=include) --- elfutils/m4/Makefile.in +++ elfutils/m4/Makefile.in -@@ -109,6 +109,7 @@ SHELL = @SHELL@ +@@ -111,6 +111,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ @@ -531,7 +531,7 @@ ac_ct_CC = @ac_ct_CC@ --- elfutils/Makefile.in +++ elfutils/Makefile.in -@@ -133,6 +133,7 @@ SHELL = @SHELL@ +@@ -135,6 +135,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ @@ -541,7 +541,7 @@ ac_ct_CC = @ac_ct_CC@ --- elfutils/src/ChangeLog +++ elfutils/src/ChangeLog -@@ -179,6 +179,11 @@ +@@ -216,6 +216,11 @@ * readelf.c (print_debug_loc_section): Fix indentation for larger address size. @@ -589,7 +589,7 @@ INCLUDES = -I$(srcdir) -I$(srcdir)/../libelf -I$(srcdir)/../libebl \ --- elfutils/src/Makefile.in +++ elfutils/src/Makefile.in -@@ -215,6 +215,7 @@ SHELL = @SHELL@ +@@ -221,6 +221,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ @@ -597,7 +597,7 @@ XGETTEXT = @XGETTEXT@ YACC = @YACC@ -d ac_ct_CC = @ac_ct_CC@ -@@ -259,12 +260,12 @@ target_alias = @target_alias@ +@@ -265,12 +266,12 @@ target_alias = @target_alias@ @MUDFLAP_FALSE@AM_CFLAGS = -Wall -Wshadow -std=gnu99 \ @MUDFLAP_FALSE@ $(native_ld_cflags) $(if \ @MUDFLAP_FALSE@ $($(*F)_no_Werror),,-Werror) $(if \ @@ -666,7 +666,7 @@ cannot set access and modification date of '%s'"), fname); --- elfutils/tests/ChangeLog +++ elfutils/tests/ChangeLog -@@ -86,6 +86,11 @@ +@@ -161,6 +161,11 @@ * Makefile.am (TESTS): Add run-elflint-test.sh. (EXTRA_DIST): Add run-elflint-test.sh and testfile18.bz2. @@ -698,7 +698,7 @@ endif --- elfutils/tests/Makefile.in +++ elfutils/tests/Makefile.in -@@ -280,6 +280,7 @@ SHELL = @SHELL@ +@@ -287,6 +287,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ @@ -706,7 +706,7 @@ XGETTEXT = @XGETTEXT@ YACC = @YACC@ ac_ct_CC = @ac_ct_CC@ -@@ -321,10 +322,10 @@ sbindir = @sbindir@ +@@ -328,10 +329,10 @@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ diff --git a/elfutils-robustify.patch b/elfutils-robustify.patch index f017108..a5ab1fa 100644 --- a/elfutils-robustify.patch +++ b/elfutils-robustify.patch @@ -19,8 +19,8 @@ libelf/ bounds. * elf32_getshdr.c (elfw2(LIBELFBITS,getshdr)): Fix comment pasto. Check if section header table fits into object's bounds. - * elf_begin.c (get_shnum): Fail if maxsize is smaller than ELF headers. - Ensure first section header fits into object's bounds. + * elf_begin.c (get_shnum): Ensure section headers fits into + object's bounds. (file_read_elf): Make sure scncnt is small enough to allocate both ElfXX_Shdr and Elf_Scn array. Make sure section and program header tables fit into object's bounds. Avoid memory leak on failure. @@ -65,9 +65,9 @@ src/ (check_symtab, is_rel_dyn, check_rela, check_rel, check_dynamic, check_symtab_shndx, check_hash, check_versym): Robustify. ---- elfutils-0.114/libelf/elf32_getphdr.c -+++ elfutils-0.114/libelf/elf32_getphdr.c -@@ -80,6 +80,16 @@ elfw2(LIBELFBITS,getphdr) (elf) +--- elfutils-0.115/libelf/elf32_getphdr.c ++++ elfutils-0.115/libelf/elf32_getphdr.c +@@ -82,6 +82,16 @@ elfw2(LIBELFBITS,getphdr) (elf) if (elf->map_address != NULL) { @@ -84,9 +84,9 @@ src/ /* All the data is already mapped. Use it. */ if (ehdr->e_ident[EI_DATA] == MY_ELFDATA && (ALLOW_UNALIGNED ---- elfutils-0.114/libelf/elf32_getshdr.c -+++ elfutils-0.114/libelf/elf32_getshdr.c -@@ -66,11 +66,12 @@ elfw2(LIBELFBITS,getshdr) (scn) +--- elfutils-0.115/libelf/elf32_getshdr.c ++++ elfutils-0.115/libelf/elf32_getshdr.c +@@ -68,11 +68,12 @@ elfw2(LIBELFBITS,getshdr) (scn) goto out; size_t shnum; @@ -101,7 +101,7 @@ src/ of entries from the ELF header. */ ElfW2(LIBELFBITS,Shdr) *shdr = elf->state.ELFW(elf,LIBELFBITS).shdr = (ElfW2(LIBELFBITS,Shdr) *) malloc (size); -@@ -92,6 +93,16 @@ elfw2(LIBELFBITS,getshdr) (scn) +@@ -94,6 +95,16 @@ elfw2(LIBELFBITS,getshdr) (scn) && (ehdr->e_shoff & (__alignof__ (ElfW2(LIBELFBITS,Shdr)) - 1)) != 0)); @@ -118,8 +118,8 @@ src/ /* Now copy the data and at the same time convert the byte order. */ if (ALLOW_UNALIGNED ---- elfutils-0.114/libelf/elf32_newphdr.c -+++ elfutils-0.114/libelf/elf32_newphdr.c +--- elfutils-0.115/libelf/elf32_newphdr.c ++++ elfutils-0.115/libelf/elf32_newphdr.c @@ -1,5 +1,5 @@ /* Create new ELF program header table. - Copyright (C) 1999, 2000, 2002 Red Hat, Inc. @@ -140,9 +140,9 @@ src/ /* Allocate a new program header with the appropriate number of elements. */ result = (ElfW2(LIBELFBITS,Phdr) *) ---- elfutils-0.114/libelf/elf32_updatefile.c -+++ elfutils-0.114/libelf/elf32_updatefile.c -@@ -164,6 +164,9 @@ __elfw2(LIBELFBITS,updatemmap) (Elf *elf +--- elfutils-0.115/libelf/elf32_updatefile.c ++++ elfutils-0.115/libelf/elf32_updatefile.c +@@ -166,6 +166,9 @@ __elfw2(LIBELFBITS,updatemmap) (Elf *elf /* Write all the sections. Well, only those which are modified. */ if (shnum > 0) { @@ -152,7 +152,7 @@ src/ ElfW2(LIBELFBITS,Shdr) *shdr_dest; Elf_ScnList *list = &elf->state.ELFW(elf,LIBELFBITS).scns; Elf_Scn **scns = (Elf_Scn **) alloca (shnum * sizeof (Elf_Scn *)); -@@ -468,6 +471,10 @@ __elfw2(LIBELFBITS,updatefile) (Elf *elf +@@ -470,6 +473,10 @@ __elfw2(LIBELFBITS,updatefile) (Elf *elf /* Write all the sections. Well, only those which are modified. */ if (shnum > 0) { @@ -163,22 +163,9 @@ src/ off_t shdr_offset = elf->start_offset + ehdr->e_shoff; #if EV_NUM != 2 xfct_t shdr_fctp = __elf_xfctstom[__libelf_version - 1][EV_CURRENT - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_SHDR]; ---- elfutils-0.114/libelf/elf_begin.c -+++ elfutils-0.114/libelf/elf_begin.c -@@ -82,7 +82,11 @@ get_shnum (void *map_address, unsigned c - || (((size_t) ((char *) map_address + offset)) - & ((is32 ? __alignof__ (Elf32_Ehdr) : __alignof__ (Elf64_Ehdr)) - - 1)) == 0)) -- ehdr.p = (char *) map_address + offset; -+ { -+ ehdr.p = (char *) map_address + offset; -+ if (maxsize < (is32 ? sizeof (Elf32_Ehdr) : sizeof (Elf64_Ehdr))) -+ return (size_t) -1l; -+ } - else - { - /* We have to read the data from the file. */ -@@ -122,7 +126,8 @@ get_shnum (void *map_address, unsigned c +--- elfutils-0.115/libelf/elf_begin.c ++++ elfutils-0.115/libelf/elf_begin.c +@@ -122,7 +122,8 @@ get_shnum (void *map_address, unsigned c if (unlikely (result == 0) && ehdr.e32->e_shoff != 0) { @@ -188,7 +175,7 @@ src/ /* Cannot read the first section header. */ return (size_t) -1l; -@@ -167,7 +172,8 @@ get_shnum (void *map_address, unsigned c +@@ -165,7 +166,8 @@ get_shnum (void *map_address, unsigned c if (unlikely (result == 0) && ehdr.e64->e_shoff != 0) { @@ -198,7 +185,7 @@ src/ /* Cannot read the first section header. */ return (size_t) -1l; -@@ -258,6 +264,15 @@ file_read_elf (int fildes, void *map_add +@@ -232,6 +234,15 @@ file_read_elf (int fildes, void *map_add /* Could not determine the number of sections. */ return NULL; @@ -212,100 +199,78 @@ src/ + return NULL; + /* We can now allocate the memory. */ - elf = allocate_elf (fildes, map_address, offset, maxsize, cmd, parent, - ELF_K_ELF, scncnt * sizeof (Elf_Scn)); -@@ -289,15 +304,31 @@ file_read_elf (int fildes, void *map_add + Elf *elf = allocate_elf (fildes, map_address, offset, maxsize, cmd, parent, + ELF_K_ELF, scncnt * sizeof (Elf_Scn)); +@@ -265,13 +276,31 @@ file_read_elf (int fildes, void *map_add + { /* We can use the mmapped memory. */ - elf->state.elf32.ehdr = - (Elf32_Ehdr *) ((char *) map_address + offset); -+ if (unlikely (elf->state.elf32.ehdr->e_shoff >= maxsize) -+ || unlikely (elf->state.elf32.ehdr->e_shoff + elf->state.elf32.ehdr = ehdr; ++ ++ if (unlikely (ehdr->e_shoff >= maxsize) ++ || unlikely (ehdr->e_shoff + + scncnt * sizeof (Elf32_Shdr) > maxsize)) + { + free_and_out: -+ __libelf_seterrno (ELF_E_INVALID_FILE); + free (elf); ++ __libelf_seterrno (ELF_E_INVALID_FILE); + return NULL; + } - elf->state.elf32.shdr = - (Elf32_Shdr *) ((char *) map_address + offset - + elf->state.elf32.ehdr->e_shoff); - if (elf->state.elf32.ehdr->e_phnum) + elf->state.elf32.shdr + = (Elf32_Shdr *) ((char *) ehdr + ehdr->e_shoff); ++ + if (ehdr->e_phnum > 0) - /* Assign a value only if there really is a program - header. Otherwise the value remains NULL. */ - elf->state.elf32.phdr -- = (Elf32_Phdr *) ((char *) map_address + offset -- + elf->state.elf32.ehdr->e_phoff); +- = (Elf32_Phdr *) ((char *) ehdr + ehdr->e_phoff); + { + /* Assign a value only if there really is a program + header. Otherwise the value remains NULL. */ -+ if (unlikely (elf->state.elf32.ehdr->e_phoff >= maxsize) -+ || unlikely (elf->state.elf32.ehdr->e_phoff -+ + elf->state.elf32.ehdr->e_phnum ++ if (unlikely (ehdr->e_phoff >= maxsize) ++ || unlikely (ehdr->e_phoff ++ + ehdr->e_phnum + * sizeof (Elf32_Phdr) > maxsize)) + goto free_and_out; + elf->state.elf32.phdr -+ = (Elf32_Phdr *) ((char *) map_address + offset -+ + elf->state.elf32.ehdr->e_phoff); ++ = (Elf32_Phdr *) ((char *) ehdr + ehdr->e_phoff); + } for (size_t cnt = 0; cnt < scncnt; ++cnt) { -@@ -326,8 +357,7 @@ file_read_elf (int fildes, void *map_add - != sizeof (Elf32_Ehdr)) - { - /* We must be able to read the ELF header. */ -- __libelf_seterrno (ELF_E_INVALID_FILE); -- return NULL; -+ goto free_and_out; - } - - if (e_ident[EI_DATA] != MY_ELFDATA) -@@ -381,15 +411,26 @@ file_read_elf (int fildes, void *map_add +@@ -340,13 +369,26 @@ file_read_elf (int fildes, void *map_add + { /* We can use the mmapped memory. */ - elf->state.elf64.ehdr = - (Elf64_Ehdr *) ((char *) map_address + offset); -+ if (unlikely (elf->state.elf64.ehdr->e_shoff >= maxsize) -+ || unlikely (elf->state.elf64.ehdr->e_shoff -+ + scncnt * sizeof (Elf64_Shdr) > maxsize)) + elf->state.elf64.ehdr = ehdr; ++ ++ if (unlikely (ehdr->e_shoff >= maxsize) ++ || unlikely (ehdr->e_shoff ++ + scncnt * sizeof (Elf32_Shdr) > maxsize)) + goto free_and_out; - elf->state.elf64.shdr = - (Elf64_Shdr *) ((char *) map_address + offset - + elf->state.elf64.ehdr->e_shoff); - if (elf->state.elf64.ehdr->e_phnum) + elf->state.elf64.shdr + = (Elf64_Shdr *) ((char *) ehdr + ehdr->e_shoff); ++ + if (ehdr->e_phnum > 0) - /* Assign a value only if there really is a program - header. Otherwise the value remains NULL. */ - elf->state.elf64.phdr -- = (Elf64_Phdr *) ((char *) map_address + offset -- + elf->state.elf64.ehdr->e_phoff); +- = (Elf64_Phdr *) ((char *) ehdr + ehdr->e_phoff); + { + /* Assign a value only if there really is a program + header. Otherwise the value remains NULL. */ -+ if (unlikely (elf->state.elf64.ehdr->e_phoff >= maxsize) -+ || unlikely (elf->state.elf64.ehdr->e_phoff -+ + elf->state.elf64.ehdr->e_phnum -+ * sizeof (Elf64_Phdr) > maxsize)) ++ if (unlikely (ehdr->e_phoff >= maxsize) ++ || unlikely (ehdr->e_phoff ++ + ehdr->e_phnum ++ * sizeof (Elf32_Phdr) > maxsize)) + goto free_and_out; + elf->state.elf64.phdr -+ = (Elf64_Phdr *) ((char *) map_address + offset -+ + elf->state.elf64.ehdr->e_phoff); ++ = (Elf64_Phdr *) ((char *) ehdr + ehdr->e_phoff); + } for (size_t cnt = 0; cnt < scncnt; ++cnt) { -@@ -418,8 +459,7 @@ file_read_elf (int fildes, void *map_add - != sizeof (Elf64_Ehdr)) - { - /* We must be able to read the ELF header. */ -- __libelf_seterrno (ELF_E_INVALID_FILE); -- return NULL; -+ goto free_and_out; - } - - if (e_ident[EI_DATA] != MY_ELFDATA) ---- elfutils-0.114/libelf/elf_getarsym.c -+++ elfutils-0.114/libelf/elf_getarsym.c -@@ -149,6 +149,9 @@ elf_getarsym (elf, ptr) +--- elfutils-0.115/libelf/elf_getarsym.c ++++ elfutils-0.115/libelf/elf_getarsym.c +@@ -146,6 +146,9 @@ elf_getarsym (elf, ptr) size_t index_size = atol (tmpbuf); if (SARMAG + sizeof (struct ar_hdr) + index_size > elf->maximum_size @@ -315,16 +280,9 @@ src/ || n * sizeof (uint32_t) > index_size) { /* This index table cannot be right since it does not fit into ---- elfutils-0.114/libelf/elf_getshstrndx.c -+++ elfutils-0.114/libelf/elf_getshstrndx.c -@@ -1,5 +1,5 @@ - /* Return section index of section header string table. -- Copyright (C) 2002 Red Hat, Inc. -+ Copyright (C) 2002, 2005 Red Hat, Inc. - Written by Ulrich Drepper , 2002. - - This program is free software; you can redistribute it and/or modify -@@ -90,10 +90,25 @@ elf_getshstrndx (elf, dst) +--- elfutils-0.115/libelf/elf_getshstrndx.c ++++ elfutils-0.115/libelf/elf_getshstrndx.c +@@ -92,10 +92,25 @@ elf_getshstrndx (elf, dst) if (elf->map_address != NULL && elf->state.elf32.ehdr->e_ident[EI_DATA] == MY_ELFDATA && (ALLOW_UNALIGNED @@ -348,12 +306,12 @@ src/ + + /* We can directly access the memory. */ + num = ((Elf32_Shdr *) (elf->map_address + elf->start_offset -+ + offset))->sh_link; ++ + offset))->sh_link; + } else { /* We avoid reading in all the section headers. Just read -@@ -129,10 +144,25 @@ elf_getshstrndx (elf, dst) +@@ -130,10 +145,25 @@ elf_getshstrndx (elf, dst) if (elf->map_address != NULL && elf->state.elf64.ehdr->e_ident[EI_DATA] == MY_ELFDATA && (ALLOW_UNALIGNED @@ -382,8 +340,8 @@ src/ else { /* We avoid reading in all the section headers. Just read ---- elfutils-0.114/libelf/elf_newscn.c -+++ elfutils-0.114/libelf/elf_newscn.c +--- elfutils-0.115/libelf/elf_newscn.c ++++ elfutils-0.115/libelf/elf_newscn.c @@ -1,5 +1,5 @@ /* Append new section. - Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. @@ -417,8 +375,8 @@ src/ if (newp == NULL) { __libelf_seterrno (ELF_E_NOMEM); ---- elfutils-0.114/libelf/gelf_getdyn.c -+++ elfutils-0.114/libelf/gelf_getdyn.c +--- elfutils-0.115/libelf/gelf_getdyn.c ++++ elfutils-0.115/libelf/gelf_getdyn.c @@ -1,5 +1,5 @@ /* Get information from dynamic table at the given index. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. @@ -446,8 +404,8 @@ src/ { __libelf_seterrno (ELF_E_INVALID_INDEX); goto out; ---- elfutils-0.114/libelf/gelf_getlib.c -+++ elfutils-0.114/libelf/gelf_getlib.c +--- elfutils-0.115/libelf/gelf_getlib.c ++++ elfutils-0.115/libelf/gelf_getlib.c @@ -1,5 +1,5 @@ /* Get library from table at the given index. - Copyright (C) 2004 Red Hat, Inc. @@ -465,8 +423,8 @@ src/ __libelf_seterrno (ELF_E_INVALID_INDEX); else { ---- elfutils-0.114/libelf/gelf_getmove.c -+++ elfutils-0.114/libelf/gelf_getmove.c +--- elfutils-0.115/libelf/gelf_getmove.c ++++ elfutils-0.115/libelf/gelf_getmove.c @@ -1,5 +1,5 @@ /* Get move structure at the given index. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. @@ -484,8 +442,8 @@ src/ { __libelf_seterrno (ELF_E_INVALID_INDEX); goto out; ---- elfutils-0.114/libelf/gelf_getrela.c -+++ elfutils-0.114/libelf/gelf_getrela.c +--- elfutils-0.115/libelf/gelf_getrela.c ++++ elfutils-0.115/libelf/gelf_getrela.c @@ -1,5 +1,5 @@ /* Get RELA relocation information at given index. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. @@ -526,8 +484,8 @@ src/ { __libelf_seterrno (ELF_E_INVALID_INDEX); result = NULL; ---- elfutils-0.114/libelf/gelf_getrel.c -+++ elfutils-0.114/libelf/gelf_getrel.c +--- elfutils-0.115/libelf/gelf_getrel.c ++++ elfutils-0.115/libelf/gelf_getrel.c @@ -1,5 +1,5 @@ /* Get REL relocation information at given index. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. @@ -568,8 +526,8 @@ src/ { __libelf_seterrno (ELF_E_INVALID_INDEX); result = NULL; ---- elfutils-0.114/libelf/gelf_getsym.c -+++ elfutils-0.114/libelf/gelf_getsym.c +--- elfutils-0.115/libelf/gelf_getsym.c ++++ elfutils-0.115/libelf/gelf_getsym.c @@ -1,5 +1,5 @@ /* Get symbol information from symbol table at the given index. - Copyright (C) 1999, 2000, 2001, 2002 Red Hat, Inc. @@ -597,8 +555,8 @@ src/ { __libelf_seterrno (ELF_E_INVALID_INDEX); goto out; ---- elfutils-0.114/libelf/gelf_getsyminfo.c -+++ elfutils-0.114/libelf/gelf_getsyminfo.c +--- elfutils-0.115/libelf/gelf_getsyminfo.c ++++ elfutils-0.115/libelf/gelf_getsyminfo.c @@ -1,5 +1,5 @@ /* Get additional symbol information from symbol table at the given index. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. @@ -616,8 +574,8 @@ src/ { __libelf_seterrno (ELF_E_INVALID_INDEX); goto out; ---- elfutils-0.114/libelf/gelf_getsymshndx.c -+++ elfutils-0.114/libelf/gelf_getsymshndx.c +--- elfutils-0.115/libelf/gelf_getsymshndx.c ++++ elfutils-0.115/libelf/gelf_getsymshndx.c @@ -1,6 +1,6 @@ /* Get symbol information and separate section index from symbol table at the given index. @@ -657,8 +615,8 @@ src/ { __libelf_seterrno (ELF_E_INVALID_INDEX); goto out; ---- elfutils-0.114/libelf/gelf_getversym.c -+++ elfutils-0.114/libelf/gelf_getversym.c +--- elfutils-0.115/libelf/gelf_getversym.c ++++ elfutils-0.115/libelf/gelf_getversym.c @@ -1,5 +1,5 @@ /* Get symbol version information at the given index. - Copyright (C) 1999, 2000, 2001, 2002 Red Hat, Inc. @@ -676,8 +634,8 @@ src/ { __libelf_seterrno (ELF_E_INVALID_INDEX); result = NULL; ---- elfutils-0.114/libelf/gelf_update_dyn.c -+++ elfutils-0.114/libelf/gelf_update_dyn.c +--- elfutils-0.115/libelf/gelf_update_dyn.c ++++ elfutils-0.115/libelf/gelf_update_dyn.c @@ -1,5 +1,5 @@ /* Update information in dynamic table at the given index. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. @@ -718,8 +676,8 @@ src/ { __libelf_seterrno (ELF_E_INVALID_INDEX); goto out; ---- elfutils-0.114/libelf/gelf_update_lib.c -+++ elfutils-0.114/libelf/gelf_update_lib.c +--- elfutils-0.115/libelf/gelf_update_lib.c ++++ elfutils-0.115/libelf/gelf_update_lib.c @@ -1,5 +1,5 @@ /* Update library in table at the given index. - Copyright (C) 2004 Red Hat, Inc. @@ -750,8 +708,8 @@ src/ __libelf_seterrno (ELF_E_INVALID_INDEX); else { ---- elfutils-0.114/libelf/gelf_update_move.c -+++ elfutils-0.114/libelf/gelf_update_move.c +--- elfutils-0.115/libelf/gelf_update_move.c ++++ elfutils-0.115/libelf/gelf_update_move.c @@ -1,5 +1,5 @@ /* Update move structure at the given index. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. @@ -768,8 +726,8 @@ src/ || unlikely ((ndx + 1) * sizeof (GElf_Move) > data_scn->d.d_size)) { __libelf_seterrno (ELF_E_INVALID_INDEX); ---- elfutils-0.114/libelf/gelf_update_rela.c -+++ elfutils-0.114/libelf/gelf_update_rela.c +--- elfutils-0.115/libelf/gelf_update_rela.c ++++ elfutils-0.115/libelf/gelf_update_rela.c @@ -1,5 +1,5 @@ /* Update RELA relocation information at given index. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. @@ -810,8 +768,8 @@ src/ { __libelf_seterrno (ELF_E_INVALID_INDEX); goto out; ---- elfutils-0.114/libelf/gelf_update_rel.c -+++ elfutils-0.114/libelf/gelf_update_rel.c +--- elfutils-0.115/libelf/gelf_update_rel.c ++++ elfutils-0.115/libelf/gelf_update_rel.c @@ -1,5 +1,5 @@ /* Update REL relocation information at given index. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. @@ -852,8 +810,8 @@ src/ { __libelf_seterrno (ELF_E_INVALID_INDEX); goto out; ---- elfutils-0.114/libelf/gelf_update_sym.c -+++ elfutils-0.114/libelf/gelf_update_sym.c +--- elfutils-0.115/libelf/gelf_update_sym.c ++++ elfutils-0.115/libelf/gelf_update_sym.c @@ -1,5 +1,5 @@ /* Update symbol information in symbol table at the given index. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. @@ -894,8 +852,8 @@ src/ { __libelf_seterrno (ELF_E_INVALID_INDEX); goto out; ---- elfutils-0.114/libelf/gelf_update_syminfo.c -+++ elfutils-0.114/libelf/gelf_update_syminfo.c +--- elfutils-0.115/libelf/gelf_update_syminfo.c ++++ elfutils-0.115/libelf/gelf_update_syminfo.c @@ -1,5 +1,5 @@ /* Update additional symbol information in symbol table at the given index. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. @@ -926,8 +884,8 @@ src/ { __libelf_seterrno (ELF_E_INVALID_INDEX); goto out; ---- elfutils-0.114/libelf/gelf_update_symshndx.c -+++ elfutils-0.114/libelf/gelf_update_symshndx.c +--- elfutils-0.115/libelf/gelf_update_symshndx.c ++++ elfutils-0.115/libelf/gelf_update_symshndx.c @@ -1,6 +1,6 @@ /* Update symbol information and section index in symbol table at the given index. @@ -969,8 +927,8 @@ src/ { __libelf_seterrno (ELF_E_INVALID_INDEX); goto out; ---- elfutils-0.114/libelf/gelf_update_versym.c -+++ elfutils-0.114/libelf/gelf_update_versym.c +--- elfutils-0.115/libelf/gelf_update_versym.c ++++ elfutils-0.115/libelf/gelf_update_versym.c @@ -1,5 +1,5 @@ /* Update symbol version information. - Copyright (C) 2001, 2002 Red Hat, Inc. @@ -987,8 +945,8 @@ src/ || unlikely ((ndx + 1) * sizeof (GElf_Versym) > data_scn->d.d_size)) { __libelf_seterrno (ELF_E_INVALID_INDEX); ---- elfutils-0.114/libelf/libelfP.h -+++ elfutils-0.114/libelf/libelfP.h +--- elfutils-0.115/libelf/libelfP.h ++++ elfutils-0.115/libelf/libelfP.h @@ -536,4 +536,13 @@ extern uint32_t __libelf_crc32 (uint32_t } while (0) #endif @@ -1003,8 +961,8 @@ src/ +#endif + #endif /* libelfP.h */ ---- elfutils-0.114/src/elflint.c -+++ elfutils-0.114/src/elflint.c +--- elfutils-0.115/src/elflint.c ++++ elfutils-0.115/src/elflint.c @@ -111,6 +111,9 @@ static uint32_t shstrndx; /* Array to count references in section groups. */ static int *scnref; @@ -1231,8 +1189,8 @@ src/ /* ELF64 files often use note section entries in the 32-bit format. The p_align field is set to 8 in case the 64-bit format is used. ---- elfutils-0.114/src/readelf.c -+++ elfutils-0.114/src/readelf.c +--- elfutils-0.115/src/readelf.c ++++ elfutils-0.115/src/readelf.c @@ -947,6 +947,7 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G GElf_Shdr *symshdr; Elf_Data *symdata; @@ -1468,8 +1426,8 @@ src/ printf (ngettext ("\ \nDWARF section '%s' at offset %#" PRIx64 " contains %zu entry:\n", "\ ---- elfutils-0.114/src/strip.c -+++ elfutils-0.114/src/strip.c +--- elfutils-0.115/src/strip.c ++++ elfutils-0.115/src/strip.c @@ -400,6 +400,7 @@ handle_elf (int fd, Elf *elf, const char Elf_Data debuglink_crc_data; bool any_symtab_changes = false; diff --git a/elfutils.spec b/elfutils.spec index c915c87..e64a418 100644 --- a/elfutils.spec +++ b/elfutils.spec @@ -1,4 +1,4 @@ -%define version 0.114 +%define version 0.115 %define release 1 %define gpl 0 @@ -190,6 +190,7 @@ rm -rf ${RPM_BUILD_ROOT} %{_bindir}/eu-ranlib %{_bindir}/eu-readelf %{_bindir}/eu-size +%{_bindir}/eu-strings %{_bindir}/eu-strip %if !%{gpl} #%{_bindir}/eu-ld @@ -235,6 +236,13 @@ rm -rf ${RPM_BUILD_ROOT} %{_libdir}/libelf.so %changelog +* Mon Sep 5 2005 Roland McGrath - 0.115-1 +- update to 0.115 + - New program eu-strings. + - libdw: New function dwarf_getscopes_die. + - libelf: speed-ups of non-mmap reading. + - Implement --enable-gcov option for configure. + * Wed Aug 24 2005 Roland McGrath - 0.114-1 - update to 0.114 - new program eu-ranlib