diff --git a/.cvsignore b/.cvsignore index c9b4168..fb62ec8 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -elfutils-0.145.tar.bz2 +elfutils-0.146.tar.bz2 diff --git a/elfutils-0.145.tar.bz2.sig b/elfutils-0.145.tar.bz2.sig deleted file mode 100644 index 696a746..0000000 Binary files a/elfutils-0.145.tar.bz2.sig and /dev/null differ diff --git a/elfutils-0.146.tar.bz2.sig b/elfutils-0.146.tar.bz2.sig new file mode 100644 index 0000000..6f59735 Binary files /dev/null and b/elfutils-0.146.tar.bz2.sig differ diff --git a/elfutils-portability.patch b/elfutils-portability.patch index 94874ed..497afec 100644 --- a/elfutils-portability.patch +++ b/elfutils-portability.patch @@ -1,6 +1,6 @@ --- elfutils/backends/ChangeLog +++ elfutils/backends/ChangeLog -@@ -88,6 +88,10 @@ +@@ -106,6 +106,10 @@ * ppc_attrs.c (ppc_check_object_attribute): Handle tag GNU_Power_ABI_Struct_Return. @@ -11,7 +11,7 @@ 2008-10-04 Ulrich Drepper * i386_reloc.def: Fix entries for TLS_GOTDESC, TLS_DESC_CALL, and -@@ -415,6 +419,11 @@ +@@ -433,6 +437,11 @@ * sparc_init.c: Likewise. * x86_64_init.c: Likewise. @@ -23,7 +23,7 @@ 2005-11-19 Roland McGrath * ppc64_reloc.def: REL30 -> ADDR30. -@@ -437,6 +446,9 @@ +@@ -455,6 +464,9 @@ * Makefile.am (uninstall): Don't try to remove $(pkgincludedir). (CLEANFILES): Add libebl_$(m).so. @@ -46,7 +46,7 @@ libebl_i386.so: $(cpu_i386) --- elfutils/backends/Makefile.in +++ elfutils/backends/Makefile.in -@@ -164,6 +164,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ +@@ -165,6 +165,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ @@ -61,8 +61,8 @@ +WEXTRA = @WEXTRA@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ - YACC = @YACC@ -@@ -255,7 +257,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi + XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +@@ -256,7 +258,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi -I$(top_srcdir)/libelf -I$(top_srcdir)/libdw AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \ $($(*F)_no_Werror),,-Werror) $(if \ @@ -71,7 +71,7 @@ $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \ $(am__append_1) @MUDFLAP_FALSE@libmudflap = -@@ -693,7 +695,7 @@ libebl_%.so libebl_%.map: libebl_%_pic.a +@@ -697,7 +699,7 @@ libebl_%.so libebl_%.map: libebl_%_pic.a $(LINK) -shared -o $(@:.map=.so) \ -Wl,--whole-archive $< $(cpu_$*) -Wl,--no-whole-archive \ -Wl,--version-script,$(@:.so=.map) \ @@ -82,7 +82,10 @@ libebl_i386.so: $(cpu_i386) --- elfutils/ChangeLog +++ elfutils/ChangeLog -@@ -1,3 +1,7 @@ +@@ -2,6 +2,10 @@ + + * configure.ac (LOCALEDIR, DATADIRNAME): Removed. + +2009-11-22 Roland McGrath + + * configure.ac: Use sed and expr instead of modern bash extensions. @@ -90,7 +93,7 @@ 2009-09-21 Ulrich Drepper * configure.ac: Update for more modern autoconf. -@@ -6,6 +10,10 @@ +@@ -10,6 +14,10 @@ * configure.ac (zip_LIBS): Check for liblzma too. @@ -101,7 +104,7 @@ 2009-04-19 Roland McGrath * configure.ac (eu_version): Round down here, not in version.h macros. -@@ -17,6 +25,8 @@ +@@ -21,6 +29,8 @@ 2009-01-23 Roland McGrath @@ -110,7 +113,7 @@ * configure.ac (zlib check): Check for gzdirect, need zlib >= 1.2.2.3. * configure.ac (__thread check): Use AC_LINK_IFELSE, in case of -@@ -97,6 +107,10 @@ +@@ -101,6 +111,10 @@ * configure.ac: Add dummy automake conditional to get dependencies for non-generic linker right. See src/Makefile.am. @@ -121,7 +124,7 @@ 2005-11-18 Roland McGrath * Makefile.am (DISTCHECK_CONFIGURE_FLAGS): New variable. -@@ -144,6 +158,17 @@ +@@ -148,6 +162,17 @@ * Makefile.am (all_SUBDIRS): Add libdwfl. * configure.ac: Write libdwfl/Makefile. @@ -148,7 +151,7 @@ +WEXTRA = @WEXTRA@ +LD_AS_NEEDED = @LD_AS_NEEDED@ + - DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H + DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H -DLOCALEDIR='"${localedir}"' INCLUDES = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. AM_CFLAGS = -std=gnu99 -Wall -Wshadow \ $(if $($(*F)_no_Werror),,-Werror) \ @@ -167,14 +170,14 @@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -105,6 +106,7 @@ SHELL = @SHELL@ +@@ -104,6 +105,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ +WEXTRA = @WEXTRA@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ - YACC = @YACC@ + XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ --- elfutils/config.h.in +++ elfutils/config.h.in @@ -1,5 +1,8 @@ @@ -186,7 +189,7 @@ /* $libdir subdirectory containing libebl modules. */ #undef LIBEBL_SUBDIR -@@ -55,4 +58,7 @@ +@@ -52,4 +55,7 @@ /* Define for large files, on AIX-style hosts. */ #undef _LARGE_FILES @@ -196,10 +199,10 @@ #include --- elfutils/configure +++ elfutils/configure -@@ -646,6 +646,8 @@ NATIVE_LD_FALSE +@@ -646,6 +646,8 @@ NEVER_TRUE + base_cpu + NATIVE_LD_FALSE NATIVE_LD_TRUE - DATADIRNAME - LOCALEDIR +LD_AS_NEEDED +WEXTRA LEXLIB @@ -432,7 +435,7 @@ fi -@@ -5460,7 +5670,7 @@ ac_config_files="$ac_config_files versio +@@ -5454,7 +5664,7 @@ ac_config_files="$ac_config_files versio # 1.234 -> 1234 case "$PACKAGE_VERSION" in @@ -441,7 +444,7 @@ *) { { $as_echo "$as_me:$LINENO: error: confused by version number '$PACKAGE_VERSION'" >&5 $as_echo "$as_me: error: confused by version number '$PACKAGE_VERSION'" >&2;} { (exit 1); exit 1; }; } ;; -@@ -5495,7 +5705,7 @@ $as_echo "$as_me: error: confused by ver +@@ -5489,7 +5699,7 @@ $as_echo "$as_me: error: confused by ver esac # Round up to the next release API (x.y) version. @@ -517,9 +520,9 @@ + [AC_DEFINE([__thread], [/* empty: no multi-thread support */], + [Stubbed out if missing compiler support.])])]) - LOCALEDIR=$datadir - AC_SUBST(LOCALEDIR) -@@ -259,7 +310,7 @@ AC_SUBST([eu_version]) + dnl This test must come as early as possible after the compiler configuration + dnl tests, because the choice of the file model can (in principle) affect +@@ -251,7 +302,7 @@ AC_SUBST([eu_version]) # 1.234 -> 1234 case "$PACKAGE_VERSION" in @@ -528,7 +531,7 @@ *) AC_MSG_ERROR([confused by version number '$PACKAGE_VERSION']) ;; esac case "$eu_version" in -@@ -288,6 +339,6 @@ case "$eu_version" in +@@ -280,6 +331,6 @@ case "$eu_version" in esac # Round up to the next release API (x.y) version. @@ -590,14 +593,14 @@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -128,6 +129,7 @@ SHELL = @SHELL@ +@@ -127,6 +128,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ +WEXTRA = @WEXTRA@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ - YACC = @YACC@ + XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ @@ -189,7 +191,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi -I$(srcdir)/../libelf AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \ @@ -631,14 +634,14 @@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -176,6 +177,7 @@ SHELL = @SHELL@ +@@ -175,6 +176,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = 1 +WEXTRA = @WEXTRA@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ - YACC = @YACC@ + XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ @@ -238,7 +240,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi -I$(top_srcdir)/libdw AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \ @@ -692,14 +695,14 @@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = lex.$( * dwarf_getscopevar.c: Use dwarf_diename. -@@ -825,6 +829,11 @@ +@@ -829,6 +833,11 @@ 2005-05-31 Roland McGrath @@ -747,7 +750,7 @@ dwarf_whatattr (Dwarf_Attribute *attr) --- elfutils/libdw/Makefile.in +++ elfutils/libdw/Makefile.in -@@ -188,6 +188,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ +@@ -189,6 +189,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ @@ -762,8 +765,8 @@ +WEXTRA = @WEXTRA@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ - YACC = @YACC@ -@@ -278,7 +280,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi + XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +@@ -279,7 +281,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi -I$(srcdir)/../libelf AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \ $($(*F)_no_Werror),,-Werror) $(if \ @@ -774,7 +777,7 @@ @MUDFLAP_FALSE@libmudflap = --- elfutils/libdwfl/ChangeLog +++ elfutils/libdwfl/ChangeLog -@@ -1184,6 +1184,11 @@ +@@ -1201,6 +1201,11 @@ 2005-07-21 Roland McGrath @@ -796,14 +799,14 @@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -210,6 +211,7 @@ SHELL = @SHELL@ +@@ -209,6 +210,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = 1 +WEXTRA = @WEXTRA@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ - YACC = @YACC@ + XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ @@ -272,7 +274,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi -I$(srcdir)/../libdw AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \ @@ -837,14 +840,14 @@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -172,6 +173,7 @@ SHELL = @SHELL@ +@@ -171,6 +172,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = 1 +WEXTRA = @WEXTRA@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ - YACC = @YACC@ + XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ @@ -234,7 +236,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi -I$(srcdir)/../libasm AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \ @@ -856,7 +859,7 @@ @MUDFLAP_FALSE@libmudflap = --- elfutils/libelf/ChangeLog +++ elfutils/libelf/ChangeLog -@@ -624,6 +624,11 @@ +@@ -651,6 +651,11 @@ * elf.h: Update from glibc. @@ -898,14 +901,14 @@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -218,6 +219,7 @@ SHELL = @SHELL@ +@@ -217,6 +218,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = 1 +WEXTRA = @WEXTRA@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ - YACC = @YACC@ + XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ @@ -278,7 +280,7 @@ zip_LIBS = @zip_LIBS@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \ @@ -925,14 +928,14 @@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -104,6 +105,7 @@ SHELL = @SHELL@ +@@ -103,6 +104,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ +WEXTRA = @WEXTRA@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ - YACC = @YACC@ + XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ --- elfutils/Makefile.in +++ elfutils/Makefile.in @@ -155,6 +155,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -943,14 +946,14 @@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -184,6 +185,7 @@ SHELL = @SHELL@ +@@ -183,6 +184,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ +WEXTRA = @WEXTRA@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ - YACC = @YACC@ + XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ --- elfutils/src/addr2line.c +++ elfutils/src/addr2line.c @@ -447,10 +447,10 @@ handle_address (const char *string, Dwfl @@ -968,7 +971,7 @@ /* It was symbol+offset. */ --- elfutils/src/ChangeLog +++ elfutils/src/ChangeLog -@@ -82,8 +82,16 @@ +@@ -98,8 +98,16 @@ * readelf.c (attr_callback): Use print_block only when we don't use print_ops. @@ -985,7 +988,7 @@ * ar.c (do_oper_extract): Use pathconf instead of statfs. 2009-08-01 Ulrich Drepper -@@ -247,6 +255,8 @@ +@@ -263,6 +271,8 @@ * readelf.c (print_debug_frame_section): Use t instead of j formats for ptrdiff_t OFFSET. @@ -994,7 +997,7 @@ 2009-01-21 Ulrich Drepper * elflint.c (check_program_header): Fix typo in .eh_frame_hdr section -@@ -430,6 +440,11 @@ +@@ -446,6 +456,11 @@ that matches its PT_LOAD's p_flags &~ PF_W. On sparc, PF_X really is valid in RELRO. @@ -1006,7 +1009,7 @@ 2008-02-29 Roland McGrath * readelf.c (print_attributes): Add a cast. -@@ -681,6 +696,8 @@ +@@ -697,6 +712,8 @@ * readelf.c (hex_dump): Fix rounding error in whitespace calculation. @@ -1015,7 +1018,7 @@ 2007-10-15 Roland McGrath * make-debug-archive.in: New file. -@@ -1120,6 +1137,10 @@ +@@ -1136,6 +1153,10 @@ * elflint.c (valid_e_machine): Add EM_ALPHA. Reported by Christian Aichinger . @@ -1026,7 +1029,7 @@ 2006-08-08 Ulrich Drepper * elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB. -@@ -1196,6 +1217,10 @@ +@@ -1212,6 +1233,10 @@ * Makefile.am: Add hacks to create dependency files for non-generic linker. @@ -1037,7 +1040,7 @@ 2006-06-12 Ulrich Drepper * ldgeneric.c (ld_generic_generate_sections): Don't create .interp -@@ -1544,6 +1569,11 @@ +@@ -1560,6 +1585,11 @@ * readelf.c (print_debug_loc_section): Fix indentation for larger address size. @@ -1103,14 +1106,14 @@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -257,6 +258,7 @@ SHELL = @SHELL@ +@@ -256,6 +257,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ +WEXTRA = @WEXTRA@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ - YACC = @YACC@ -d + XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ @@ -320,7 +322,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi -I$(srcdir)/../libasm AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \ @@ -1132,7 +1135,7 @@ size_LDADD = $(libelf) $(libeu) $(libmudflap) --- elfutils/src/readelf.c +++ elfutils/src/readelf.c -@@ -7644,7 +7644,7 @@ dump_archive_index (Elf *elf, const char +@@ -7655,7 +7655,7 @@ dump_archive_index (Elf *elf, const char if (unlikely (elf_rand (elf, as_off) == 0) || unlikely ((subelf = elf_begin (-1, ELF_C_READ_MMAP, elf)) == NULL)) @@ -1234,7 +1237,7 @@ cannot set access and modification date of '%s'"), fname); --- elfutils/tests/ChangeLog +++ elfutils/tests/ChangeLog -@@ -130,6 +130,8 @@ +@@ -145,6 +145,8 @@ 2008-01-21 Roland McGrath @@ -1243,7 +1246,7 @@ * testfile45.S.bz2: Add tests for cltq, cqto. * testfile45.expect.bz2: Adjust. -@@ -838,6 +840,11 @@ +@@ -853,6 +855,11 @@ * Makefile.am (TESTS): Add run-elflint-test.sh. (EXTRA_DIST): Add run-elflint-test.sh and testfile18.bz2. @@ -1268,7 +1271,7 @@ case 0: --- elfutils/tests/Makefile.in +++ elfutils/tests/Makefile.in -@@ -367,6 +367,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ +@@ -372,6 +372,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ @@ -1276,15 +1279,15 @@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -396,6 +397,7 @@ SHELL = @SHELL@ +@@ -400,6 +401,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ +WEXTRA = @WEXTRA@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ - YACC = @YACC@ -@@ -456,7 +458,7 @@ zip_LIBS = @zip_LIBS@ + XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +@@ -461,7 +463,7 @@ zip_LIBS = @zip_LIBS@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. $(am__append_2) AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \ $($(*F)_no_Werror),,-Werror) $(if \ diff --git a/elfutils-robustify.patch b/elfutils-robustify.patch index 8e6f545..e1356d4 100644 --- a/elfutils-robustify.patch +++ b/elfutils-robustify.patch @@ -1,24 +1,9 @@ --- elfutils/libelf/ChangeLog +++ elfutils/libelf/ChangeLog -@@ -616,6 +616,49 @@ +@@ -643,10 +643,53 @@ 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. -+2005-05-17 Jakub Jelinek -+ -+ * elf32_getphdr.c (elfw2(LIBELFBITS,getphdr)): Check if program header -+ table fits into object's bounds. -+ * elf_getshstrndx.c (elf_getshstrndx): Add elf->start_offset to -+ elf->map_address. Check if first section header fits into object's -+ bounds. -+ * elf32_getshdr.c (elfw2(LIBELFBITS,getshdr)): -+ Check if section header table 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. -+ +2005-05-14 Jakub Jelinek + + * libelfP.h (INVALID_NDX): Define. @@ -50,9 +35,28 @@ 2005-05-11 Ulrich Drepper * elf.h: Update again. + ++2005-05-17 Jakub Jelinek ++ ++ * elf32_getphdr.c (elfw2(LIBELFBITS,getphdr)): Check if program header ++ table fits into object's bounds. ++ * elf_getshstrndx.c (elf_getshstrndx): Add elf->start_offset to ++ elf->map_address. Check if first section header fits into object's ++ bounds. ++ * elf32_getshdr.c (elfw2(LIBELFBITS,getshdr)): ++ Check if section header table 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. ++ + 2005-05-09 Ulrich Drepper + + * elf.h: Update from glibc. --- elfutils/libelf/elf32_getphdr.c +++ elfutils/libelf/elf32_getphdr.c -@@ -107,6 +107,16 @@ __elfw2(LIBELFBITS,getphdr_wrlock) (elf) +@@ -114,6 +114,16 @@ __elfw2(LIBELFBITS,getphdr_wrlock) (elf) if (elf->map_address != NULL) { @@ -181,7 +185,7 @@ /* We can now allocate the memory. Even if there are no section headers, we allocate space for a zeroth section in case we need it later. */ const size_t scnmax = (scncnt ?: (cmd == ELF_C_RDWR || cmd == ELF_C_RDWR_MMAP) -@@ -324,13 +335,33 @@ file_read_elf (int fildes, void *map_add +@@ -324,6 +335,16 @@ file_read_elf (int fildes, void *map_add { /* We can use the mmapped memory. */ elf->state.elf32.ehdr = ehdr; @@ -197,30 +201,8 @@ + } 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 *) ehdr + ehdr->e_phoff); -+ -+ size_t phnum = ehdr->e_phnum; -+ if (phnum == PN_XNUM && scncnt > 0) -+ phnum = elf->state.elf32.shdr[0].sh_info; -+ if (phnum > 0) -+ { -+ /* Assign a value only if there really is a program -+ header. Otherwise the value remains NULL. */ -+ if (unlikely (ehdr->e_phoff >= maxsize) -+ || unlikely (maxsize - ehdr->e_phoff -+ < phnum * sizeof (Elf32_Phdr))) -+ goto free_and_out; -+ elf->state.elf32.phdr -+ = (Elf32_Phdr *) ((char *) ehdr + ehdr->e_phoff); -+ } - for (size_t cnt = 0; cnt < scncnt; ++cnt) - { -@@ -412,13 +443,28 @@ file_read_elf (int fildes, void *map_add +@@ -410,6 +431,11 @@ file_read_elf (int fildes, void *map_add { /* We can use the mmapped memory. */ elf->state.elf64.ehdr = ehdr; @@ -231,29 +213,7 @@ + goto free_and_out; 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 *) ehdr + ehdr->e_phoff); -+ -+ size_t phnum = ehdr->e_phnum; -+ if (phnum == PN_XNUM && scncnt > 0) -+ phnum = elf->state.elf64.shdr[0].sh_info; -+ if (phnum > 0) -+ { -+ /* Assign a value only if there really is a program -+ header. Otherwise the value remains NULL. */ -+ if (unlikely (ehdr->e_phoff >= maxsize) -+ || unlikely (ehdr->e_phoff -+ + phnum * sizeof (Elf32_Phdr) > maxsize)) -+ goto free_and_out; -+ elf->state.elf64.phdr -+ = (Elf64_Phdr *) ((char *) ehdr + ehdr->e_phoff); -+ } - for (size_t cnt = 0; cnt < scncnt; ++cnt) - { --- elfutils/libelf/elf_getarsym.c +++ elfutils/libelf/elf_getarsym.c @@ -179,6 +179,9 @@ elf_getarsym (elf, ptr) @@ -905,7 +865,7 @@ #endif /* libelfP.h */ --- elfutils/src/ChangeLog +++ elfutils/src/ChangeLog -@@ -1532,6 +1532,16 @@ +@@ -1548,6 +1548,16 @@ object symbols or symbols with unknown type. (check_rel): Likewise. @@ -922,7 +882,7 @@ 2005-06-08 Roland McGrath * readelf.c (print_ops): Add consts. -@@ -1577,6 +1587,19 @@ +@@ -1593,6 +1603,19 @@ * readelf.c (dwarf_tag_string): Add new tags. @@ -1219,7 +1179,7 @@ idx, section_name (ebl, idx), --- elfutils/src/readelf.c +++ elfutils/src/readelf.c -@@ -1170,6 +1170,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G +@@ -1171,6 +1171,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G Elf32_Word *grpref = (Elf32_Word *) data->d_buf; GElf_Sym sym_mem; @@ -1228,7 +1188,7 @@ printf ((grpref[0] & GRP_COMDAT) ? ngettext ("\ \nCOMDAT section group [%2zu] '%s' with signature '%s' contains %zu entry:\n", -@@ -1182,8 +1184,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G +@@ -1183,8 +1185,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G data->d_size / sizeof (Elf32_Word) - 1), elf_ndxscn (scn), elf_strptr (ebl->elf, shstrndx, shdr->sh_name), @@ -1239,7 +1199,7 @@ ?: gettext (""), data->d_size / sizeof (Elf32_Word) - 1); -@@ -1334,7 +1336,8 @@ static void +@@ -1335,7 +1337,8 @@ static void handle_dynamic (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr) { int class = gelf_getclass (ebl->elf); @@ -1249,7 +1209,7 @@ Elf_Data *data; size_t cnt; size_t shstrndx; -@@ -1349,6 +1352,11 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, +@@ -1350,6 +1353,11 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, error (EXIT_FAILURE, 0, gettext ("cannot get section header string table index")); @@ -1261,7 +1221,7 @@ printf (ngettext ("\ \nDynamic segment contains %lu entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n", "\ -@@ -1358,9 +1366,7 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, +@@ -1359,9 +1367,7 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, class == ELFCLASS32 ? 10 : 18, shdr->sh_addr, shdr->sh_offset, (int) shdr->sh_link, @@ -1272,7 +1232,7 @@ fputs_unlocked (gettext (" Type Value\n"), stdout); for (cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt) -@@ -1943,6 +1949,13 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G +@@ -1944,6 +1950,13 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G error (EXIT_FAILURE, 0, gettext ("cannot get section header string table index")); @@ -1286,7 +1246,7 @@ /* Now we can compute the number of entries in the section. */ unsigned int nsyms = data->d_size / (class == ELFCLASS32 ? sizeof (Elf32_Sym) -@@ -1953,15 +1966,12 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G +@@ -1954,15 +1967,12 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G nsyms), (unsigned int) elf_ndxscn (scn), elf_strptr (ebl->elf, shstrndx, shdr->sh_name), nsyms); @@ -1303,7 +1263,7 @@ fputs_unlocked (class == ELFCLASS32 ? gettext ("\ -@@ -2197,7 +2207,13 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, +@@ -2198,7 +2208,13 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, error (EXIT_FAILURE, 0, gettext ("cannot get section header string table index")); @@ -1318,7 +1278,7 @@ printf (ngettext ("\ \nVersion needs section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n", "\ -@@ -2208,9 +2224,7 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, +@@ -2209,9 +2225,7 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, class == ELFCLASS32 ? 10 : 18, shdr->sh_addr, shdr->sh_offset, (unsigned int) shdr->sh_link, @@ -1329,7 +1289,7 @@ unsigned int offset = 0; for (int cnt = shdr->sh_info; --cnt >= 0; ) -@@ -2263,8 +2277,14 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G +@@ -2264,8 +2278,14 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G error (EXIT_FAILURE, 0, gettext ("cannot get section header string table index")); @@ -1345,7 +1305,7 @@ printf (ngettext ("\ \nVersion definition section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n", "\ -@@ -2276,9 +2296,7 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G +@@ -2277,9 +2297,7 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G class == ELFCLASS32 ? 10 : 18, shdr->sh_addr, shdr->sh_offset, (unsigned int) shdr->sh_link, @@ -1356,7 +1316,7 @@ unsigned int offset = 0; for (int cnt = shdr->sh_info; --cnt >= 0; ) -@@ -2540,8 +2558,14 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, G +@@ -2541,8 +2559,14 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, G filename = NULL; } @@ -1372,7 +1332,7 @@ printf (ngettext ("\ \nVersion symbols section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'", "\ -@@ -2553,9 +2577,7 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, G +@@ -2554,9 +2578,7 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, G class == ELFCLASS32 ? 10 : 18, shdr->sh_addr, shdr->sh_offset, (unsigned int) shdr->sh_link, @@ -1383,7 +1343,7 @@ /* Now we can finally look at the actual contents of this section. */ for (unsigned int cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt) -@@ -2607,7 +2629,17 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn, +@@ -2608,7 +2630,17 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn, for (Elf32_Word cnt = 0; cnt < nbucket; ++cnt) ++counts[lengths[cnt]]; @@ -1402,7 +1362,7 @@ printf (ngettext ("\ \nHistogram for bucket list length in section [%2u] '%s' (total of %d bucket):\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n", "\ -@@ -2620,9 +2652,7 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn, +@@ -2621,9 +2653,7 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn, shdr->sh_addr, shdr->sh_offset, (unsigned int) shdr->sh_link, @@ -1413,7 +1373,7 @@ if (extrastr != NULL) fputs (extrastr, stdout); -@@ -4263,6 +4293,16 @@ print_debug_aranges_section (Dwfl_Module +@@ -4265,6 +4295,16 @@ print_debug_aranges_section (Dwfl_Module return; } diff --git a/elfutils.spec b/elfutils.spec index 1379fb8..3d144cc 100644 --- a/elfutils.spec +++ b/elfutils.spec @@ -1,4 +1,4 @@ -%global eu_version 0.145 +%global eu_version 0.146 %global eu_release 1 %if %{?_with_compat:1}%{!?_with_compat:0} @@ -38,7 +38,7 @@ Patch2: elfutils-portability.patch Requires: elfutils-libelf-%{_arch} = %{version}-%{release} Requires: elfutils-libs-%{_arch} = %{version}-%{release} -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +BuildRequires: gettext BuildRequires: bison >= 1.875 BuildRequires: flex >= 2.5.4a BuildRequires: bzip2 @@ -213,6 +213,8 @@ chmod +x ${RPM_BUILD_ROOT}%{_prefix}/%{_lib}/elfutils/lib*.so* rm -f .%{_bindir}/eu-ld ) +%find_lang %{name} + %check make -s check @@ -229,7 +231,7 @@ rm -rf ${RPM_BUILD_ROOT} %files %defattr(-,root,root) -%doc README TODO +%doc COPYING README TODO %{_bindir}/eu-addr2line %{_bindir}/eu-ar %{_bindir}/eu-elfcmp @@ -274,7 +276,7 @@ rm -rf ${RPM_BUILD_ROOT} %{_libdir}/libasm.a %{_libdir}/libdw.a -%files libelf +%files -f %{name}.lang libelf %defattr(-,root,root) %{_libdir}/libelf-%{version}.so %{_libdir}/libelf.so.* @@ -291,6 +293,13 @@ rm -rf ${RPM_BUILD_ROOT} %{_libdir}/libelf.a %changelog +* Wed Apr 21 2010 Roland McGrath - 0.146-1 +- Update to 0.146 + - libdwfl: New function dwfl_core_file_report. + - libelf: Fix handling of phdrs in truncated file. (#577310) + - libdwfl: Fix infinite loop handling clobbered link_map. (#576379) +- Package translations. + * Tue Feb 23 2010 Roland McGrath - 0.145-1 - Update to 0.145 - Fix build with --disable-dependency-tracking. (#564646) diff --git a/sources b/sources index edceb98..0ebe170 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -af325a39c5a534de5b15c2a727a4e203 elfutils-0.145.tar.bz2 +7f5f5adf811ebc4f36a10bf6bd6d2c61 elfutils-0.146.tar.bz2