elfutils 0.161 released

Mark Wielaard mjw at redhat.com
Fri Dec 19 22:05:32 UTC 2014

A new release of elfutils is available now at:

* NEWS *

Version 0.161

libdw: New function dwarf_peel_type. dwarf_aggregate_size now uses
       dwarf_peel_type to also provide the sizes of qualified types.
       dwarf_getmacros will now serve either of .debug_macro and
       .debug_macinfo transparently.  New interfaces
       dwarf_getmacros_off, dwarf_macro_getsrcfiles,
       dwarf_macro_getparamcnt, and dwarf_macro_param are available
       for more generalized inspection of macros and their parameters.
       dwarf.h: Add DW_AT_GNU_deleted, DW_AT_noreturn, DW_LANG_C11,
       DW_LANG_C_plus_plus_11 and DW_LANG_C_plus_plus_14.

Thanks to Hanno Böck and Alexander Cherepanov for running various
fuzzers and reporting crashers in the eu-readelf tool, libelf and libdw
libraries. elfutils should now be a little bit less crashy. But we still
recommend users to be careful processing possibly corrupt ELF and DWARF


Jan Kratochvil (3):
  Fix resolving ELF symbols for live PIDs with deleted files
  Add is_executable to Dwfl_Module.
  Support note NT_FILE for locating files.

Josh Stone (10):
  addr2line: Iterate scopes for inline's parent function
  addr2line: Always prefer linkage_name over plain names
  libdw: unify die->abbrev lookups
  libdw: optimize dwarf_hasattr to just look at abbrev
  libdw: save startp/endp boundaries in Dwarf_CU
  libdw: Make srclines use a stable sort
  libdwfl: Search for the last matching address in lines
  tests: Test addr2line -i with lexical blocks present
  Add config/compile as installed by automake 1.14
  libdw: pre-compute leb128 loop limits

Mark Wielaard (92):
  libdwfl: dwfl_segment_report_module use ei_class, ei_data and e_type.
  libdw: dwarf_aggregate_size return CU address_size for sizeless pointer/refs.
  tests: run-deleted.sh unset VALGRIND_CMD before running deleted.
  dwarf.h: Add DW_AT_GNU_deleted.
  libdw: Add dwarf_peel_type. Use it in dwarf_aggregate_size.
  libelf: Correct shdr size check for (raw) getdata.
  readelf: Sanity check hash section contents before processing.
  readelf.c (handle_versym): Initialize vername and filename array elements.
  libdw: Fix dwarf_getsrclines.c 32bit compile error.
  libelf: Use mempcpy not __mempcpy.
  libelf: Fix unsigned overflow check in elf_getdata.
  libdwfl: find_dynsym don't assume dynamic linker has adjusted DYNAMIC entries.
  readelf: Check def == NULL before use in handle_versym.
  libdwfl: dwfl_module_getdwarf.c don't use symtab with bogus sh_entsize.
  libdwelf: Check the d_buf actually exists in dwelf_elf_gnu_debuglink.
  libelf: gelf_getnote check for offset overflow.
  readelf: Sanity check CIE unit_length and augmentationlen in debug_frame.
  libelf: getdata check 64bit values correctly on 32bit arch.
  gelf_getnote: Check padding overflow.
  readelf: Robustify print_cfa_program.
  libelf: Fix handling of (extended) phnum.
  libelf: elf_getshdrstrndx cannot use SHN_XINDEX without section headers.
  readelf: Warn if ptr_size is not 4 or 8 bytes.
  Check elf_strptr didn't fail getting section name.
  readelf: When the version chain ends, stop processing the entries.
  libelf: Check for overflow in version_xlate elf_cvt_Verdef and elf_cvt_Verneed.
  readelf: Fix sanity check of DW_FORM_block length in print_cfa_program
  libdwfl: Sanity check the symbol table before use.
  dwarf.h: Add DW_AT_noreturn.
  dwarf.h: Add DW_LANG_C11, DW_LANG_C_plus_plus_11 and DW_LANG_C_plus_plus_14.
  libelf: elf_getphdrnum sanity check the returned phnum result.
  Use elf_getphdrnum instead of accessing ehdr->e_phnum directly.
  readelf: print_attributes (-A) robustify and handle non-gnu attributes.
  libelf: Copy over any leftover data from src to dest in elf_cvt_note.
  readelf: Check length for nexthdr overflow in print_debug_aranges_section.
  libelf: Change signed overflow check to unsigned in elf_getdata_rawchunk.
  libdw: Don't assert in __libdw_getabbrev when seeing bad DWARF.
  libdw: Always check __libdw_find_attr return value.
  readelf, libdw: Guard against divide by zero line_range in .debug_line.
  readelf: Cast Dwarf_Word length to ptrdiff_t for comparison.
  tests: vdsosyms call dwfl_linux_proc_attach.
  libdw: Initialize variables in getcfi_gnu_eh_frame.
  Add configure --disable-textrelcheck option to enable CC=afl-fuzz on 32bit.
  readelf: Don't trash destshdr for STT_SECTION in handle_relocs_rel[a].
  libdwfl: Check relocations don't overlap ELF ehdr, shdrs or phdrs.
  readelf: Fix overflow check in handle_sysv_hash64.
  objdump: Add various sanity checks to guard against corrupted data.
  libdw: Add overflow checking to __libdw_form_val_len.
  libdwfl: Never relocate value against section zero (load address).
  libdwfl: Check actually used ehsize, shentsize and phentsize in relocate.c
  readelf: DW_OP_call_ref and DW_OP_GNU_implicit_pointer are invalid for CFA.
  readelf: maximum operations per instruction cannot be zero in .debug_line.
  readelf: Report invalid data if action table doesn't follow call site table.
  readelf: Check count fits and doesn't overflow fptr in handle_file_note.
  libdwfl: Check file count overflow in handle_file_note.
  libelf: Make sure n * w doesn't overflow in elf_getarsym.
  tests: Add an explicit -fasynchronous-unwind-tables for deleted-lib.so.
  libelf: Add some ar header sanity checking.
  libelf: Correct ELF64 section offset check in file_read_elf.
  readelf: Don't print more augmentation characters than there are.
  readelf: Check TType base offset and Action table are sane in exception table.
  Guard against 64bit unsigned wrap around in (int) compare functions.
  libdw: Make sure end of next cu doesn't overflow section data size.
  libdwfl: Make sure elf_getdata_rawchunk size_t doesn't overflow find_dynsym.
  elfcmp: Make sure Elf32_Word difference doesn't wrap around in int compare.
  libdw: Make sure all attributes come with a (fake) CU for bound checks.
  libdw: Add get_uleb128 and get_sleb128 bounds checking.
  libdw: Unroll the first get_sleb128 step to help the compiler optimize.
  libelf: Clear any garbage left in the ar name table.
  readelf: Check there is enough room for the DW_LNE_set_address argument
  readelf: Make sure there is enough room for reading .debug_line unit_length.
  libdw: Add bounds checking to dwarf_getpubnames.
  readelf: Add more bounds checks to print_gdb_index_section.
  libdw: dwarf_getpubnames set error to DWARF_E_NO_ENTRY for zero entries.
  readelf: Don't assert when addr_size or ref_size is not 4 or 8 in print_ops.
  readelf: Warn, don't assert, if loclist or rangelist offset is too big.
  readelf,libdw: Correct .debug_line overflow check for unit_length.
  readelf: Correct overflow check for length in print_debug_aranges_section.
  libdw: Make sure there is enough space to read offset in dwarf_getpubnames.
  libelf: Check index_size doesn't overflow in elf_getarsym.
  libelf: Make sure ar archive long_names len fits in mapped ELF file.
  readelf: Print dwarf_errmsg if dwarf_onesrcline or dwarf_linesrc fails.
  libdw: Check diridx is valid under DW_LNE_define_file in dwarf_getsrclines.
  readelf: Add bounds check before each CFA op that takes an argument.
  libdwfl: Make sure symstrdata->d_buf != NULL in relocate resolve_symbol.
  tests: Add testfile-macros-0xff.bz2 to EXTRA_DIST.
  Prepare 0.161 release.
  libdwfl: Remove p_align sanity check from elf_from_memory.
  libdwfl: Always try find_dynsym last, also on find_symtab ELF errors.
  tests: run-deleted.sh should SKIP if arch doesn't support unwinding.
  tests: vdsosyms should not fail for architectures that don't have a vdso.
  tests: Don't match libfunc symbol on ppc64 in run-deleted.sh testcase.

Petr Machata (8):
  elf_begin sets elf_errno for cases that the file is completely unreadable
  Accept DW_AT_GNU_call_site_* as attributes that hold location expressions
  Rename read_ubyte_unaligned_inc to read_addr_unaligned_inc
  readelf: Fix typo in a check in handle_relocs_rela
  Drop unused field struct Dwarf_Files_s.cu
  Support .debug_macro
  Test cases for .debug_macro support
  Change calling convention of dwarf_getmacros to allow opcode 0xff

Ulrich Drepper (1):
  avoid scary command output

More information about the elfutils-devel mailing list